ImageDataGenerator 是 Keras 中用于数据增强的类,用于在训练过程中对图像进行随机变换和增强,以提高模型的泛化能力。它可以生成经过旋转、平移、缩放、剪切、翻转等变换后的图像,从而扩充训练集的大小,增加模型的鲁棒性。

ImageDataGenerator 类的常用参数如下:

  • featurewise_center: 布尔值,表示是否对数据进行标准化处理,即将数据集中到 0 附近。
  • samplewise_center: 布尔值,表示是否对每个样本进行标准化处理。
  • featurewise_std_normalization: 布尔值,表示是否对数据进行标准化处理,即将数据集缩放到标准差为 1。
  • samplewise_std_normalization: 布尔值,表示是否对每个样本进行标准化处理。
  • zca_whitening: 布尔值,表示是否使用 ZCA 白化来增强数据集的对比度和清晰度。
  • rotation_range: 整数,表示图像旋转的角度范围,一般在 0~180 度之间。
  • width_shift_range: 浮点数或整数,表示图像水平平移的范围,一般在 0~1 之间。
  • height_shift_range: 浮点数或整数,表示图像垂直平移的范围,一般在 0~1 之间。
  • shear_range: 浮点数或整数,表示剪切强度的范围。
  • zoom_range: 浮点数或整数,表示图像缩放的范围。
  • horizontal_flip: 布尔值,表示是否水平翻转图像。
  • vertical_flip: 布尔值,表示是否垂直翻转图像。
  • rescale: 浮点数,表示缩放因子,将原始图像乘以该值进行缩放。

使用方法:

首先,需要导入 ImageDataGenerator 类:

from keras.preprocessing.image import ImageDataGenerator

然后,创建一个 ImageDataGenerator 对象,并设置需要的参数:

train_datagen = ImageDataGenerator(
    rescale=1./255,
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest')

接着,可以使用 ImageDataGenerator 的 flow_from_directory 方法加载训练集和验证集的图像,并对其进行增强:

train_generator = train_datagen.flow_from_directory(
    train_dir,
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
    validation_dir,
    target_size=(150, 150),
    batch_size=32,
    class_mode='binary')

最后,将生成器对象(train_generator 和 validation_generator)作为参数传递给模型的 .fit_generator 方法进行训练。

model.fit_generator(
    train_generator,
    steps_per_epoch=100,
    epochs=100,
    validation_data=validation_generator,
    validation_steps=50)

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

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