gpt4 book ai didi

machine-learning - 使用 fit_generator 时 Keras 中的噪声验证丢失

转载 作者:行者123 更新时间:2023-11-30 08:32:25 24 4
gpt4 key购买 nike

关于原因的任何想法our training loss is smooth and our validation loss is that noisy (see the link) across epochs?我们正在使用 this Kaggle competition 提供的眼底照片数据集实现糖尿病视网膜病变检测的深度学习模型(二元分类)。 。我们使用 Keras 2.0Tensorflow 后端。

由于数据集太大,无法放入内存,我们使用 fit_generator,其中 ImageDataGenerator 从训练和验证文件夹中随机获取图像:

# 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。 You can find our implementation in Github

这绝对与过度拟合无关,因为我们尝试使用高度正则化的模型,并且行为完全相同。 与验证集的采样有关吗?你们以前遇到过类似的问题吗?

谢谢!!

最佳答案

我会按照这个顺序查看:

  • validation_generator 实现中的错误(包括步骤 - 它是否会检查为验证保留的所有图片?)
  • 在validation_generator中,不要使用增强(原因:增强可能很糟糕,不可学习,并且在训练中,它确实只能通过硬编码不可泛化的关系来获得良好的分数)
  • 将列车/验证比例更改为 50/50
  • 通过自定义回调计算纪元结束时的验证损失(使用相同的函数,但使用回调调用它会产生不同的(在某些非标准模型上更准确)结果)

如果以上都没有给出更平滑的验证损失曲线,那么我的下一个假设就是事情就是这样,我可能需要研究模型架构

关于machine-learning - 使用 fit_generator 时 Keras 中的噪声验证丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46981888/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com