当我得到图像的路径时,为什么我需要洗牌数据?
Why do I need to shuffle data, when I get the path to images?
train_image_paths = [str(path) for path in list(train_path.glob('*/*.jpeg'))]
random.shuffle(train_image_paths)
以上是您可以看到的示例代码。
我也有同样的问题:
train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(64).shuffle(10000)
我不明白为什么在这些情况下我需要随机播放。
在明显的情况下,如果您的训练数据按 class 标签排序,则混洗很有用。通过改组,您可以让您的模型 "see" 范围广泛的数据点,每个数据点在 class 化的上下文中属于不同的 classes。如果模型经过排序的训练数据,您的模型将面临过度拟合某些 classes 的风险。简而言之,混洗有助于减少方差并确保训练集、测试集和验证集代表真实分布。
train_image_paths = [str(path) for path in list(train_path.glob('*/*.jpeg'))]
random.shuffle(train_image_paths)
以上是您可以看到的示例代码。
我也有同样的问题:
train_dataset = tf.data.Dataset.from_tensor_slices((x_train, y_train)).batch(64).shuffle(10000)
我不明白为什么在这些情况下我需要随机播放。
在明显的情况下,如果您的训练数据按 class 标签排序,则混洗很有用。通过改组,您可以让您的模型 "see" 范围广泛的数据点,每个数据点在 class 化的上下文中属于不同的 classes。如果模型经过排序的训练数据,您的模型将面临过度拟合某些 classes 的风险。简而言之,混洗有助于减少方差并确保训练集、测试集和验证集代表真实分布。