2017-08-09 34 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