我的代码如下所示。当我第一次运行时,有输出,但是当我第二次运行它时,没有输出。
我的代码:
import tensorflow as tf
sess = tf.Session()
q = tf.FIFOQueue(3, "float")
init = q.enqueue_many(([0., 0., 0.],))
x = q.dequeue()
y = x +1
q_inc = q.enqueue([y])
sess.run(init)
sess.run(q_inc)
sess.run(q_inc)
sess.run(q_inc)
sess.run(q_inc)
for i in range(0, 4):
print(sess.run(q.dequeue()))
为什么?
答案 0 :(得分:0)
由于您将容量设置为3
,因此无法存储超过3个元素。当您尝试第4次执行dequeue
操作时,程序会冻结。您可以增加thge队列的capacity
。
# Dont forget to reset the default graph
tf.reset_default_graph()
capacity = 3
q = tf.FIFOQueue(capacity, "float")
注意:如果你从cli运行这个prgram,它会打印3个元素并且每次冻结,增加队列capcity将解决相同的问题。