我目前正在训练一个卷积神经网络,用于根据外观区分腐烂的苹果和正常的苹果。我已经准备好了所有必要的数据,但是我对以下代码行有一个问题。
epoch_x, epoch_y = tf.train.batch([resized_image, "Normal"], batch_size=batch_size)
这段代码将图像和标签输入到神经网络中。我的问题是,我应该先用所有正常橙子的批次训练网络,然后再用腐烂橙子的批次训练神经网络吗?我应该交替训练腐烂和正常橙子的批次吗?这些图像的训练顺序是否有特定要求?
回答:
你不应该按照任何特定顺序进行训练,每个批次应该包含正例和反例,并且顺序是随机的。如果你的类别是平衡的,那么每个批次将包含大致相同数量的正样本和负样本。
实现这一点的最简单方法是随机打乱你的数据(在第一维度上),然后按顺序生成批次。一个好的做法是在每个epoch之后重新打乱数据,这样神经网络就不会看到样本呈现的任何顺序模式。
这种技术可以防止神经网络训练中的任何偏见。