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  # 验证集样本数

代码解释:

  1. 创建图像生成器
    • train_image_generatorval_image_generator 分别用于训练集和验证集的图像预处理。
  2. 预处理操作
    • rescale=1./255:将图像的像素值缩放到 0-1 之间,这是深度学习模型常用的归一化操作。
    • horizontal_flip=True:对训练集的图像进行水平翻转,以增加数据的多样性。
  3. 读取图像数据
    • flow_from_directory 方法用于从目录中读取图像数据,并生成批量的图像数据。
    • batch_size:指定每个批次包含的图像数量。
    • directory:指定训练集或验证集的图像目录。
    • shuffle=True:是否打乱数据顺序。
    • target_size:指定图像的尺寸。
    • class_mode='categorical':指定分类方式,此处为多分类。

总结:

通过使用 ImageDataGenerator 类,可以方便地对图像进行一系列的预处理操作,如归一化、翻转等。在训练和验证过程中,图像生成器会自动对图像进行预处理操作,并生成批量的图像数据供模型使用。这可以提高模型的训练效率和性能,同时还可以增加数据的多样性。

Python 代码中的图像预处理:ImageDataGenerator 的使用

原文地址: https://www.cveoy.top/t/topic/gVq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录