3

RNNの作業中に奇妙な問題が発生しました。私はTensorFlow RNN Tutorialに従っていて、R2RT's Blog Post: Recurrent Neural Networks in Tensorflow Iから非常にインスパイアされた自分の(より単純な)実装を試しています。tf.train.range_input_producer(epoch_size、shuffle = True)は終了せず、CPU/GPU負荷を誘発しません。

デバッグ後、問題がranger_input_producerから来てtensorflow.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_producerepoch_sizeための変数値を持ちます)。 ではあるとして、私もCPUどんなsession.run(...)を呼んでも使用していない(終了していない、このコードことが判明した。私は、キューがsuggested by Daving Wongとして何かを待っていることを推測する。

任意の手がかり? Thxを

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:のようなコードを使用し、 スーパーバイザー()関数は、 `暗黙的にスレッドを開始し、何か

+0

さまざまな理由から、私はキューの代わりにイテレータを使用しました(tensorflow 0.11 ptb_word_lmの実装のように) まだありません。私はあなたが正しいと思う、私は "手作業"に関連するものを読むようにキューなどを開始するので、私はこのanwserを検証しています。 – pltrdy

0

あなたは空のキューによるデキューI/Oブロックを打つ可能性があります。(ptb_producerはFIFOQueueを使用tf.train.range_input_producerを、使用しています。)返すための要素がありますまでdocumentationによると、キューがブロックされますディレクトリとデータを再確認してください。

+0

問題もあるため、I/Oから来なければならないという点で、あなたは正しいが含まれていますsess.run(data) 'は終了しません。 – pltrdy

関連する問題