TensorFlow 队列

1. 队列基本操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import tensorflow as tf
import os

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

# 创建队列,第1个参数capacity代表队列容量,第2个参数dtypes代表元素类型
q = tf.FIFOQueue(3, tf.float32)

# 添加数据
enq_many = q.enqueue_many([[0.1, 0.2, 0.3]])

# 取数据,加1,再放回队列
out_q = q.dequeue()
data = out_q + 1.0
en_q = q.enqueue(data)


with tf.Session() as sess:
# 初始化队列
sess.run(enq_many)

for i in range(100):
"""
根据拓扑结构,sess.run(en_q)相当于执行以下3个过程
out_q = q.dequeue()
data = out_q + 1.0
en_q = q.enqueue(data)
"""
sess.run(en_q)

# q.size()是一个OP,调用eval()才能得到值
for i in range(q.size().eval()):
# 出队列
print(sess.run(q.dequeue()))
panchaoxin wechat
关注我的公众号
支持一下