ImageDataGenerator函数
时间: 2024-05-11 08:18:06 浏览: 70
DataGenerator
ImageDataGenerator 是 Keras 中的一个类,用于数据增强和预处理。它可以对图像进行多种随机变换,包括旋转、平移、缩放、翻转、剪切等,以增加数据样本的多样性和数量。使用该类可以有效地避免过拟合问题,提高模型的泛化能力。此外,ImageDataGenerator 还可以对图像进行标准化、归一化等预处理操作,以便输入到模型中进行训练。
在使用 ImageDataGenerator 时,通常需要将其与 Keras 中的另一个类 Generators 结合使用,例如 flow_from_directory、flow_from_dataframe 等,以读取数据并实现批量生成。
例如,以下代码使用 ImageDataGenerator 对图像进行旋转、平移、缩放等增强,并将其与 flow_from_directory 结合使用:
```
from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
vertical_flip=True,
rescale=1./255
)
train_generator = datagen.flow_from_directory(
'train/',
target_size=(224, 224),
batch_size=32,
class_mode='binary'
)
```
在上面的代码中,rotation_range、width_shift_range、height_shift_range、zoom_range、horizontal_flip、vertical_flip 等参数控制了图像的旋转、平移、缩放和翻转等随机变换。而 rescale 参数则对图像进行了归一化处理,将像素值缩放到 [0,1] 范围内。最后,使用 flow_from_directory 函数读取 train 文件夹下的图像数据,并指定了图像的目标尺寸为 (224, 224),批量大小为 32,类别模式为二分类。
阅读全文