ImageDataGenerator
时间: 2024-01-04 09:01:55 浏览: 77
`ImageDataGenerator` 是 Keras 中用于数据增强的工具,用于生成图像数据的增强版本以及相应的标签。它可以在训练期间实时生成经过增强的图像数据,并将其输入模型进行训练,从而增加数据的多样性,避免过拟合,提高模型的泛化能力。
`ImageDataGenerator` 可以执行以下图像增强操作:
- 旋转、剪切、缩放、平移图像
- 翻转图像(水平或垂直)
- 调整图像的亮度、对比度、饱和度等
- 对图像进行归一化处理
- ...
以下是一个简单的示例代码,演示如何使用 `ImageDataGenerator` 进行图像增强:
```python
from keras.preprocessing.image import ImageDataGenerator
# 创建 ImageDataGenerator 实例
datagen = ImageDataGenerator(
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' # 图像增强时使用的填充模式
)
# 加载图像数据
X_train = ...
y_train = ...
# 将图像数据转换为增强数据
datagen.fit(X_train)
gen = datagen.flow(X_train, y_train, batch_size=32)
# 训练模型
model.fit_generator(generator=gen, epochs=50, ...)
```
在上面的代码中,我们首先创建了一个 `ImageDataGenerator` 实例,并指定了一些常用的图像增强参数。然后,我们将训练数据 `X_train` 和标签 `y_train` 转换为增强数据,并使用 `fit_generator` 方法训练模型。
注意,这只是一个简单的示例代码,实际上在使用 `ImageDataGenerator` 进行图像增强时,您需要根据您的具体需求来调整参数。
阅读全文