0
我正在使用tensorflow在具有55,000个训练图像(来自mnist的原始60,000图像的5,000张图像被保留用于验证)的mnist数据集上进行练习。使用tf.train.shuffle_batch循环数据多次
目前我正在使用tf.TFRecordReader读入训练tf.record,然后使用tf.train.shuffle_batch读入训练输入。这个过程可以在https://bitbucket.org/jackywang529/tesorflow-sandbox/src的mnist.py的输入函数中找到。
不过,我一直步骤之后,提示以下错误:2720
tensorflow.python.framework.errors.OutOfRangeError: RandomShuffleQueue '_1_input/shuffle_batch/random_shuffle_queue' is closed and has insufficient elements (requested 100, current size 0)
因此,我有2个问题:
为什么会步2720之后?考虑到每一步都需要100个批次,而且我有55,000个训练图像?如果它超出范围,在步骤550左右不应该这样做吗?
如何使用tf.train.shuffle_batch永远循环遍历数据集?我不确定这是否是shuffle_batch实现或其他设置的限制。
谢谢!
从你的队列中读取其他内容吗?例如,如果您有汇总统计信息,它们将消耗队列中的元素。如果你将你的shuffle_batch连接到string_input_producer之类的东西,默认行为是永久生成条目,你应该检查你是否设置了'epochs'参数 –
谢谢Yaroslav!你是对的,菲利普在下面的回复中也是如此:) – Banana