TensorFlow Dataset.shuffle - 大型数据集

rod*_*ira 3 machine-learning tensorflow tfrecord

我正在使用TensorFlow 1.2和20G TFRecord文件中的数据集.该TFRecord文件中有大约50万个样本.

看起来如果我选择的值小于数据集中的记录数量buffer_size,则只使用TFRecord中的前N个记录.https://www.tensorflow.org/api_docs/python/tf/contrib/data/Dataset#shuffle

例如,如果buffer_size = 100,似乎只使用了前100条记录.

应该buffer_size始终是数据集的长度?这会影响培训表现吗?

Mat*_*ugi 10

无论您选择何种缓冲区大小,都将使用所有样本,它只会影响随机播放的随机性.

如果缓冲区大小为100,则意味着Tensorflow将保留下一个100个样本的缓冲区,并将随机选择这100个样本中的一个.然后它将下一个元素添加到缓冲区.

所以,如果buffer_size = 1,则根本没有shuffle,如果buffer_size> data_set_size,则保证完美均匀的随机shuffle.

我强烈建议创建TFrecords 之前对数据集进行洗牌,并保持较小的缓冲区大小.


归档时间:

查看次数:

6279 次

最近记录:

7 年,9 月 前