📜  将 imagedatagenerator 拆分为 x_train 和 y_train - Python (1)

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

将ImageDataGenerator拆分为x_train和y_train - Python

当使用ImageDataGenerator加载图像数据集时,可以很容易地生成图像的增强版本,但是此时我们需要将图像与它们的标签(即y_train)一起使用才能训练模型。因此,我们需要将ImageDataGenerator拆分为x_train和y_train。

加载图像数据集

首先,我们需要加载存储在文件夹中的图像数据集。可以使用Keras的ImageDataGenerator类从文件夹中生成图像数据集。

from keras.preprocessing.image import ImageDataGenerator

train_data_dir = "path/to/train_data"
val_data_dir = "path/to/validation_data"

train_datagen = ImageDataGenerator(rescale=1./255)
val_datagen = ImageDataGenerator(rescale=1./255)

train_generator = train_datagen.flow_from_directory(
        train_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        class_mode='binary')

validation_generator = val_datagen.flow_from_directory(
        val_data_dir,
        target_size=(img_width, img_height),
        batch_size=batch_size,
        class_mode='binary')

在上述代码中,我们使用ImageDataGenerator将训练和验证数据集加载到train_generatorvalidation_generator中。

拆分ImageDataGenerator

为了拆分ImageDataGenerator为x_train和y_train,我们需要从train_generatorvalidation_generator中获取它们的x_train和y_train。我们可以使用以下代码来获取它们。

x_train, y_train = train_generator.next()
x_val, y_val = validation_generator.next()

train_generator.next()方法会返回一个元组,其中包含当前批次的图像和对应的标签。我们将其分别分配给x_train和y_train。同样,我们可以使用validation_generator.next()方法来获取x_val和y_val。

此时,我们可以使用x_train和y_train构建模型的训练集数据,用x_val和y_val构建验证集数据。

结论

在本文中,我们展示了如何使用Keras的ImageDataGenerator类加载图像数据集,并将其拆分为x_train和y_train。这可以让我们使用ImageDataGenerator生成的增强版本的图像与它们的标签一起来训练模型。