如何将图像数据导入 python for keras?

数据挖掘 机器学习 喀拉斯 卷积 美国有线电视新闻网
2021-09-28 02:27:49

我是 CNN 的新手,从 keras 开始。我目前正在使用 ImageDataGenerator 导入我的训练/验证文件夹(每个文件夹都有 2 个用于我的二进制分类任务的类子文件夹)。想知道如何在不使用 ImageDataGenerator 的情况下导入我的训练/验证文件?我知道 ImageDataGenerator 对准确性有好处,因为它做了一些增强,但我想将准确性与没有任何增强的训练集进行比较。本质上我认为我需要将所有图像放入一个数组中,但不知道如何。

基本上我想知道导入图像的训练/验证数据的正常方法是什么,所以我可以比较有/没有 imagedatagen 的准确性差异。我知道使用普通的 NN 任务很容易,因为您只需执行 pd.read_csv()。

我目前正在像这样导入:

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(
        'data/train',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')

validation_generator = test_datagen.flow_from_directory(
        'data/validation',
        target_size=(150, 150),
        batch_size=32,
        class_mode='binary')
1个回答

ImageDataGenerator的文档建议默认情况下不进行任何扩充。因此,您可以在没有任何扩充参数的情况下实例化它,并保留其余代码来处理目录结构:

train_datagen = ImageDataGenerator(rescale=1./255)

您还可以编写自己的自定义数据生成器并将其传递给model.fit_generator(). 是一个很好的教程。

或者,如果您的数据适合内存,您可以编写一些更简单的代码,可能用于keras.preprocessing.image.load_img将所有图像加载到数组中并将它们传递给model.fit