tf.train.range_input_producer(epoch_size,shuffle = True)不会终止也不会导致CPU/GPU负载

plt*_*rdy 3 python tensorflow recurrent-neural-network word-embedding

在使用RNN时,我遇到了一个奇怪的问题.我正在关注TensorFlow RNN教程并尝试我自己的(更简单的)实现,这非常受到R2RT博客文章的启发:Tensorflow I中的递归神经网络.

调试后我中标识的问题是从即将ranger_input_producertensorflow.models.rnn.ptb.reader.py(线115).

我在最小的例子中隔离了它:

import tensorflow as tf

epoch_size = 20
i = tf.train.range_input_producer(epoch_size, shuffle=False).dequeue()
Run Code Online (Sandbox Code Playgroud)

这是什么ptb_producer(具有可变值epoch_size).事实证明,这个代码不会终止(我甚至不会调用任何代码session.run(...)也不会使用CPU.我猜这个队列正在按照Daving Wong的建议等待.

有线索吗?谢谢

pltrdy

小智 6

如果您只使用代码 with tf.Session() as sess:,则必须明确打开该线程 threads = tf.train.start_queue_runners().但是在ptb_word_lm.py中,它使用这样的代码 sv = tf.train.Supervisor() with sv.managed_session() as sess:,Supervisor()函数包含一些隐式启动线程的东西