数据增强:使用 ImageDataGenerator 提高模型性能

数据增强是一种通过对训练数据进行人工变换来增加训练样本数量的技术,可以有效地提高深度学习模型的泛化能力,防止过拟合。Keras 提供了 ImageDataGenerator 类,方便我们对图像数据进行增强。

代码示例

train_datagen = ImageDataGenerator(
    rotation_range=40,  # 旋转角度范围
    rescale=1./255,  # 所有数据集乘以这个数值
    zoom_range=0.2,  # 缩放范围
    shear_range=0.2,  # 剪切范围
    fill_mode='nearest',  # 填充模式
    horizontal_flip=True,  # 水平翻转
    width_shift_range=0.2,  # 水平平移范围
    height_shift_range=0.2  # 垂直平移范围
)

参数说明

  • rotation_range: 旋转角度范围,以度为单位。
  • rescale: 所有数据集乘以这个数值,通常用于将像素值缩放到 0 到 1 之间。
  • zoom_range: 缩放范围,取值为 0 到 1 之间的浮点数,例如 0.2 表示缩放范围为 80% 到 120%。
  • shear_range: 剪切范围,取值为 0 到 1 之间的浮点数,例如 0.2 表示剪切范围为 -20% 到 20%。
  • fill_mode: 填充模式,用于填充图像边界以外的区域。可选值包括 'nearest'、'reflect'、'wrap' 等。
  • horizontal_flip: 是否进行水平翻转。
  • width_shift_range: 水平平移范围,取值为 0 到 1 之间的浮点数,例如 0.2 表示平移范围为图像宽度的 -20% 到 20%。
  • height_shift_range: 垂直平移范围,取值为 0 到 1 之间的浮点数,例如 0.2 表示平移范围为图像高度的 -20% 到 20%。

使用示例

train_generator = train_datagen.flow_from_directory(
    'path/to/train/data',  # 训练数据目录
    target_size=(150, 150),  # 目标图像大小
    batch_size=32,  # 批次大小
    class_mode='categorical'  # 分类模式
)

通过 flow_from_directory 方法可以从磁盘读取图像数据并进行增强。target_size 参数指定目标图像大小,batch_size 指定批次大小,class_mode 指定分类模式。

总结

ImageDataGenerator 是一个强大的工具,可以方便地对图像数据进行增强。通过使用数据增强,我们可以提高模型的泛化能力,防止过拟合,并最终提高模型的性能。

数据增强:使用 ImageDataGenerator 提高模型性能

原文地址: https://www.cveoy.top/t/topic/pjwS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录