📜  图像数据生成器 tensorflow (1)

📅  最后修改于: 2023-12-03 15:37:16.614000             🧑  作者: Mango

TensorFlow 图像数据生成器

TensorFlow 图像数据生成器是一种用于极大程度优化机器学习输入数据处理的工具。该生成器使用 TensorFlow 的数据流图(data flow graph)来处理大规模数据集。

该生成器可自动将大规模数据集划分成小批次,以便训练神经网络时逐批输入数据,以此提高训练效率。

生成器的创建
使用 ImageDataGenerator 类创建数据生成器
from tensorflow.keras.preprocessing.image import ImageDataGenerator

train_datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

test_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
        'train',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
        'validation',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')
flow_from_directory 方法
  • flow_from_directory 方法用于从指定目录的文件夹中动态生成数据集。

  • 该方法接受三个重要参数:目标目录、图片的大小、批次大小。

  • 可以使用 class_mode 参数指定分类类型(如二分类或多分类)或回归任务。

  • 此外还可以使用其他一些参数对图像数据进行进一步处理。

使用生成器训练模型
model.fit(
        train_generator,
        steps_per_epoch=2000,
        epochs=50,
        validation_data=validation_generator,
        validation_steps=800)
结论

Image data generator 在 TensorFlow 中的应用已变得越来越普遍。相对于手动处理和划分数据、加载数据到内存等繁琐的工作,使用 TensorFlow 的数据生成器能高效地做到处理图像数据集。