ImageDataGenerator()函数
时间: 2023-09-24 19:05:48 浏览: 86
ImageDataGenerator是Keras中的一个类,用于数据的增强和预处理,常用于图像分类、目标检测等任务。主要功能包括以下几点:
1. 数据增强:ImageDataGenerator可以通过对图片进行旋转、缩放、平移、翻转、随机裁剪等方式,生成更多的训练数据,以提高模型的泛化能力和效果。
2. 数据预处理:ImageDataGenerator可以对图片进行标准化、归一化等操作,以提高训练的稳定性和效果。
3. 数据流生成:ImageDataGenerator可以将图片读入内存,并生成一个数据流(Generator),以供模型训练使用。这种方式可以有效地节省内存,同时支持大规模数据的训练。
使用示例:
```python
from keras.preprocessing.image import 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', # 边界填充方式
rescale=1./255 # 归一化
)
# 读取图片并生成训练数据流
train_generator = datagen.flow_from_directory(
'train',
target_size=(224, 224),
batch_size=32,
class_mode='binary'
)
# 读取图片并生成验证数据流
validation_generator = datagen.flow_from_directory(
'validation',
target_size=(224, 224),
batch_size=32,
class_mode='binary'
)
# 训练模型
model.fit_generator(
train_generator,
steps_per_epoch=100,
epochs=10,
validation_data=validation_generator,
validation_steps=50
)
```
阅读全文