2017-08-09 86 views
0

我的代码如下所示。当我第一次运行它时,会有输出,但是当我第二次运行它时,没有输出。为什么打印张量流队列没有输出?

我的代码:

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

由于您将容量设置为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个元素,并冻结所有的时间,增加了队列capcity将解决同。

+0

亲爱的@Ishant Mrinal,谢谢你的回答。顺便说一下,你能告诉我如何解冻程序吗?我发现当程序冻结时,我关闭笔记本电脑,下次打开它,但程序仍然没有输出。 – spark