Shuffle

请问一下,当数据集特别大,比如我有 100 万张图片,train_image_ds = train_image_ds.shuffle (train_count).batch (BATCH_SIZE),shuffle 是对数据进行打乱,shuffle () 里边的设置太大就会出现内存不足,但是设置小了是不是数据就打乱的不充分了,100 万张图,我 shuffle 设置成 5000 可以嘛?我就怕打乱的不充分??求解决,我想了很久了。

你好,关于 shuffle 的原理,请参考 https://tf.wiki/zh_hans/basic/tools.html#id5 中的叙述。打散的效果需要看你原始数据集的分布,比如如果你的 100 万张图片是前 50 万张为标签 0,后 50 万张为标签 1,那么 shuffle 设成 5000 肯定远远不够。如果对数据集打乱的要求高,建议一开始就对原始数据集进行彻底的打乱(比如给图片文件随机起文件名)。

总的数据集是 100 万,我刚开始已经对数据集彻底打乱了,现在我 shuffle 等于 10000,那现在是不是好多了

其实你可以取多个值自己试验一下,模型训练出来最终效果好就行。如果你已经彻底打乱过数据集了,我觉得shuffle_size设一个差不多的数值就好了,应该对最终结果影响不大。

嗯嗯,谢谢你哈 :grin: