2017-02-22 40 views
1

tensorflow版本:1.0.0Tensorflow FIFOQueue '_4_batch_join/fifo_queue' 被關閉,沒有足夠的元件

NUM_THREADS = 4 
    BATCH_SIZE = 32 
    csv_file_queue = tf.train.string_input_producer(csv_files, shuffle=False) 
    jpg_file_queue = tf.train.string_input_producer(jpg_files, shuffle=False) 
    data_batch_list = [read_data(csv_file_queue, jpg_file_queue) for _ in range(NUM_THREADS)] 
    csv_data_batch, jpg_data_batch = tf.train.batch_join(data_batch_list, batch_size=BATCH_SIZE) 

    sess.run(tf.group(tf.global_variables_initializer(), tf.local_variables_initializer())) 

    coord = tf.train.Coordinator() 
    threads = tf.train.start_queue_runners(sess=sess, coord=coord) 
      ... 
    coord.request_stop() 
    coord.join(threads) 

OutOfRangeError異常(參見上述用於回溯):FIFOQueue '_4_batch_join/fifo_queue' 被關閉,沒有足夠的元件(請求32,當前大小爲17)

回答

0

這可能發生在準備最後一批時。從文檔 :添加allow_smaller_final_batch=Truetrain.batch_join調用

如果allow_smaller_final_batch是真,當隊列被關閉返回比 的batch_size小批量價值,有沒有 足夠的元素來填充料,否則待處理元素丟棄 。另外,通過get_shape方法訪問 的所有輸出張量的靜態形狀將具有第一個維值None, ,並且依賴於固定batch_size的操作將失敗。

相關問題