任何关于为什么我们的训练损失平滑而验证损失嘈杂(请参见链接)跨越时期的想法吗?我们正在使用由这个Kaggle竞赛提供的眼底照片数据集实现糖尿病视网膜病变(二元分类)的深度学习模型。我们使用带有TensorFlow后端的Keras 2.0。由于数据集太大无法放入内存,因此我们使用fit_generator,并使用ImageDataGenerator从训练和验证文件夹中随机获取图像:
我们的CNN架构是VGG16,最后两个完全连接层的dropout = 0.5,仅在第一个完全连接层之前进行批量归一化,并进行数据增强(包括水平和垂直翻转图像)。我们的训练和验证样本使用训练集均值和标准偏差进行归一化。批量大小为32。我们的激活函数是sigmoid,损失函数是binary_crossentropy。 您可以在Github上找到我们的实现 这绝对与过拟合无关,因为我们尝试了高度规则化的模型,行为非常相似。它是否与从验证集中进行采样有关?你们之中有人以前遇到过类似的问题吗?
谢谢!
# TRAIN THE MODEL
model.fit_generator(
train_generator,
steps_per_epoch= train_generator.samples // training_batch_size,
epochs=int(config['training']['epochs']),
validation_data=validation_generator,
validation_steps= validation_generator.samples // validation_batch_size,
class_weight=None)
我们的CNN架构是VGG16,最后两个完全连接层的dropout = 0.5,仅在第一个完全连接层之前进行批量归一化,并进行数据增强(包括水平和垂直翻转图像)。我们的训练和验证样本使用训练集均值和标准偏差进行归一化。批量大小为32。我们的激活函数是sigmoid,损失函数是binary_crossentropy。 您可以在Github上找到我们的实现 这绝对与过拟合无关,因为我们尝试了高度规则化的模型,行为非常相似。它是否与从验证集中进行采样有关?你们之中有人以前遇到过类似的问题吗?
谢谢!