我的代码如下所示。当我第一次运行它时,有输出,但是当我第二次运行它时,没有输出。
我的代码:
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()))
为什么?
由于您将容量设置为3
,它不能存储超过 3 个元素。当您尝试第 4 次执行dequeue
操作时,程序将冻结。您可以增加队列的capacity
。
# Dont forget to reset the default graph
tf.reset_default_graph()
capacity = 3
q = tf.FIFOQueue(capacity, "float")
注意:如果您从 cli 运行此 prgram,它会打印 3 个元素并每次冻结,增加队列容量将解决相同的问题。