Python 代码中的图像预处理:ImageDataGenerator 的使用
Python 代码中的图像预处理:ImageDataGenerator 的使用
在深度学习中,对图像进行预处理是必不可少的步骤。图像预处理可以帮助提高模型的训练效率和性能。本文将介绍使用 Python 中的 ImageDataGenerator 类进行图像预处理的操作。
以下代码示例展示了如何使用 ImageDataGenerator 对图像进行归一化、翻转等操作,以及如何使用 flow_from_directory 方法从目录中读取图像数据并生成批量的图像数据供模型使用。
# 创建图像生成器
train_image_generator = ImageDataGenerator(
rescale=1./255, # 归一化
horizontal_flip=True # 水平翻转
)
val_image_generator = ImageDataGenerator(
rescale=1./255 # 归一化
)
train_data_gen = train_image_generator.flow_from_directory(
batch_size=batch_size, # 批大小
directory=train_dir, # 训练集目录
shuffle=True, # 是否打乱数据
target_size=(IMG_HEIGHT, IMG_WIDTH), # 图像大小
class_mode='categorical' # 分类方式
)
val_data_gen = val_image_generator.flow_from_directory(
batch_size=batch_size, # 批大小
directory=val_dir, # 验证集目录
shuffle=True, # 是否打乱数据
target_size=(IMG_HEIGHT, IMG_WIDTH), # 图像大小
class_mode='categorical' # 分类方式
)
total_train = train_data_gen.samples # 训练集样本数
total_val = val_data_gen.samples # 验证集样本数
代码解释:
- 创建图像生成器
train_image_generator和val_image_generator分别用于训练集和验证集的图像预处理。
- 预处理操作
rescale=1./255:将图像的像素值缩放到 0-1 之间,这是深度学习模型常用的归一化操作。horizontal_flip=True:对训练集的图像进行水平翻转,以增加数据的多样性。
- 读取图像数据
flow_from_directory方法用于从目录中读取图像数据,并生成批量的图像数据。batch_size:指定每个批次包含的图像数量。directory:指定训练集或验证集的图像目录。shuffle=True:是否打乱数据顺序。target_size:指定图像的尺寸。class_mode='categorical':指定分类方式,此处为多分类。
总结:
通过使用 ImageDataGenerator 类,可以方便地对图像进行一系列的预处理操作,如归一化、翻转等。在训练和验证过程中,图像生成器会自动对图像进行预处理操作,并生成批量的图像数据供模型使用。这可以提高模型的训练效率和性能,同时还可以增加数据的多样性。
原文地址: https://www.cveoy.top/t/topic/gVq 著作权归作者所有。请勿转载和采集!