Neural network 当我得到图像的路径时,为什么我需要洗牌数据?

Neural network 当我得到图像的路径时,为什么我需要洗牌数据?,neural-network,dataset,conv-neural-network,tensorflow2.0,Neural Network,Dataset,Conv Neural Network,Tensorflow2.0,上面是您可以看到的示例代码 在这种情况下,我也有同样的问题: train_image_paths = [str(path) for path in list(train_path.glob('*/*.jpeg'))] random.shuffle(train_image_paths) 我不明白为什么在这些情况下我需要洗牌。在明显的情况下,如果训练数据按类标签排序,洗牌是有帮助的。通过洗牌,您可以让您的模型在分类上下文中看到各种各样的数据点,每个数据点都属于不同的类。如果模型通过已排序的训练数据

上面是您可以看到的示例代码

在这种情况下,我也有同样的问题:

train_image_paths = [str(path) for path in list(train_path.glob('*/*.jpeg'))]
random.shuffle(train_image_paths)

我不明白为什么在这些情况下我需要洗牌。

在明显的情况下,如果训练数据按类标签排序,洗牌是有帮助的。通过洗牌,您可以让您的模型在分类上下文中看到各种各样的数据点,每个数据点都属于不同的类。如果模型通过已排序的训练数据,则您的模型可能会过度拟合某些类。简言之,洗牌有助于减少差异,并确保训练集、测试集和验证集代表真实分布

哦,我现在明白了。因为我正在获取文件名,所以我不希望它在列表中排序,因为这样模型将从排序列表中学习。这有点让人困惑,因为我以前没有处理过图片,只是看不清楚图片。再次感谢:@Yana是的,这是正确的理解。很高兴我能帮忙。
train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(64).shuffle(10000)