为什么没有打印张量流队列的输出?



我的代码如下所示。当我第一次运行它时,有输出,但是当我第二次运行它时,没有输出。

我的代码:

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 个元素并每次冻结,增加队列容量将解决相同的问题。

最新更新