【问题标题】:ImageDataGenerator performs worseImageDataGenerator 表现更差
【发布时间】:2019-12-05 09:54:53
【问题描述】:

我构建了一个带有和不带有 ImageDataGenerator 的神经网络。当我不使用它时,它工作正常。当我将它与 IDG 一起使用时,准确性和 valid_accuracy-scores 都非常糟糕。所以我认为我做错了什么。

我想使用 IDG 来看看增强可以为我的神经网络做些什么。但即使我摆脱了所有的增强,它仍然表现不佳。

这是我的 IDG 代码:

image_size=224

train_datagen = ImageDataGenerator(rescale=1./255, validation_split = 0.2)

train_generator = train_datagen.flow_from_directory('images',
target_size = (image_size, image_size),
batch_size = 10
class_mode = 'categorical'
subset='training')

validation_generator = train_datagen.flow_from_directory('images',
target_size = (image_size, image_size),
batch_size = 10
class_mode = 'categorical'
subset='training')

当我适合它时,我会使用以下代码:

    chat = model.fit_generator(train_generator, steps_per_epoch = train_generator.samples // 10,
validation_data = validation_generator,
validation_steps = validation_generator.samples // 10,
epochs = 10)

我做错了吗? IDG 是否对我看不到的图像执行操作,但会更改以某种方式影响图像的内容?

当我绘制图像时,我没有看到任何奇怪的东西。

希望有人能给我一些建议!

【问题讨论】:

  • 会不会和steps_per_epoch或validation_steps有关?
  • 我可以采取哪些步骤来找出问题所在?
  • steps_per_epoch 是训练生成器在考虑一个时期结束之前应该产生的批次数。如果您有 600 个批量大小为 20 的训练图像,则每个 epoch 需要 30 步。 validation_steps 将相同的逻辑应用于验证数据生成器,无论是在每个 epoch 结束时。
  • 您是否为您的网络使用过任何迁移学习?可能是您的迁移学习权重与您的图像尺寸不兼容。

标签: python-3.x tensorflow keras conv-neural-network


【解决方案1】:

当你说数据增强的性能更差时,你是在同一个数据集上比较两者吗?

一般来说,将在增强数据集上使用数据增强训练的模型与在常规数据集上没有数据增强训练的模型进行比较,可能会出错。

请务必记住,模型可能更难以处理增强数据集。因此,即使准确率没有以前那么高,但在常规数据集上进行评估时,它实际上可能会更高。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 2019-12-07
    • 2013-06-24
    • 1970-01-01
    • 2016-05-11
    • 2021-08-25
    相关资源
    最近更新 更多