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_producer (epoch_size에 대한 변수 값). 에서이다, 나는 심지어 CPU 어떤 session.run(...) 전화도 사용하지 않는 (종료되지 않습니다,이 코드 것으로 나타났다. 나는 큐가 suggested by Daving Wong으로 뭔가를 기다리고 있다고 생각한다.

모든 단서? 들으

pltrdy

당신으로 인해 비어있는 큐에 디큐에게 I/O 블록을 타격 할 수

답변

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 구현 에서처럼). Still , 나는 당신이 맞다고 생각합니다. "수동으로"시작 대기열 등과 관련된 자료를 읽었습니다. 따라서이 anwser의 유효성을 검사합니다. – pltrdy

0

는. 반환하는 요소가 될 때까지 documentation에 따르면 큐가 차단됩니다 (ptb_producer는 FIFOQueue을. 사용 tf.train.range_input_producer를 사용) 디렉토리와 데이터를 다시 확인하십시오.

+0

스레드를 시작하는 것을 포함도 있기 때문에 I/O에서 와야 문제' sess.run (data)'이 종료되지 않습니다. Btw, directory/file은 괜찮습니다. 그렇지 않으면 예외를 발생시킵니다. 데이터 처리 방식에 실제 차이가 보이지 않습니다. – pltrdy