Keras ImageDataGenerator: 图像数据增强详解
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 著作权归作者所有。请勿转载和采集!