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

时间:2017-08-09 06:30:39

标签: tensorflow

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

我的代码:

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()))

为什么?

1 个答案:

答案 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将解决相同的问题。