3

我在研究 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()

这是什么ptb_producer(具有可变值epoch_size)。事实证明,这段代码并没有终止(我什至没有调用任何session.run(...)CPU,也没有使用 CPU。我猜队列正在等待Daving Wong 建议的某些东西。

有什么线索吗?谢谢

多的

4

2 回答 2

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() 函数包含一些隐式启动线程的东西

于 2016-12-03T03:02:52.217 回答
0

由于队列为空,您可能会遇到出列 I/O 块。(ptb_producer 使用 tf.train.range_input_producer,它使用 FIFOQueue。)根据文档,队列将阻塞,直到有一个元素返回。请仔细检查您的目录和数据。

于 2016-11-03T17:28:31.183 回答