tf.data.dataset.shuffle的机制是什么?

时间:2018-08-23 22:47:25

标签: python tensorflow deep-learning tfrecord

说我在一个tfrecord中有100,000个示例。我使用缓冲区大小100进行洗牌,在我们使用完所有示例并将另外100个示例拖入洗牌之后,将每100个示例洗牌一次。还是当我们使用训练数据时,它也将填写后面的示例,并从随机播放中均匀地绘制数据,以便在某个时间点,每个示例都有一定的可能性位于缓冲区中?

它认为后者更有意义。随机播放功能是如何实现的?我抬起头,但是找到了解释该机制的来源。

谢谢。

1 个答案:

答案 0 :(得分:1)

取自here

  

Dataset.shuffle()转换随机地随机改变输入   数据集使用与tf.RandomShuffleQueue类似的算法:   保持固定大小的缓冲区并统一选择下一个元素   从该缓冲区中随机获取。

您可以找到操作here的定义,该定义指向ShuffleDataset

另外,请注意,随机播放操作还允许您确定批处理的绘制方式(例如,在一个时期之后,是否对数据集进行了总体伪随机随机播放)。