Tensorflow队列在训练中期结束

时间:2017-05-15 07:26:03

标签: python tensorflow

调用

时出错
example, label = tf.train.shuffle_batch(
    [example, label],
    batch_size=batch_size,
    capacity=capacity,
    min_after_dequeue=min_after_dequeue,
    num_threads=num_preprocess_threads,
)

我一直收到这个错误,我不确定为什么会这样:

  

tensorflow.python.framework.errors_impl.CancelledError:RandomShuffleQueue'_4_shuffle_batch_1 / random_shuffle_queue'已关闭。

它似乎与保存训练数据的文件数有关。到目前为止,如果我使用较少但较大的文件,我不会得到这个问题。现在我有了一批新的数据,无论如何都会发生这种错误。

生成我的培训批次的完整代码在这里:

input_pipeline(instructions, batch_size, base_directory, num_epochs=None):
filename_list = [os.path.join(base_directory, x) for x in instructions.filename_list]
filename_queue = tf.train.string_input_producer(
    filename_list, shuffle=True, capacity=100)
example, label, feature_name_list = read_binary_format(filename_queue, instructions)

num_preprocess_threads = 16
min_after_dequeue = 10000
capacity = min_after_dequeue + 3 * batch_size

example, label = tf.train.shuffle_batch(
    [example, label],
    batch_size=batch_size,
    capacity=capacity,
    min_after_dequeue=min_after_dequeue,
    num_threads=num_preprocess_threads,
)

return tf.reshape(example, [batch_size,-1]), label

感谢任何帮助,我不知道导致此错误的原因。

0 个答案:

没有答案