flow_from_directory是否可以从Keras中的同一目录获取训练和验证数据?

BAE*_*BAE 3 python machine-learning training-data keras

我从这里得到以下例子。

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')
Run Code Online (Sandbox Code Playgroud)

有两个单独的目录用于训练和验证。只是好奇我是否可以从同一目录而不是两个单独的目录中分离出训练和验证数据?有什么例子吗?

tod*_*day 8

您可以将validation_split参数(0到1之间的数字)传递给ImageDataGenerator类实例,以将数据拆分为训练集和验证集:

generator = ImagaDataGenerator(..., validation_split=0.3)
Run Code Online (Sandbox Code Playgroud)

然后将subset参数传递flow_from_directory给指定训练和验证生成器:

train_gen = generator.flow_from_directory(dir_path, ..., subset='training')
val_gen = generator.flow_from_directory(dir_path, ..., subset='validation')
Run Code Online (Sandbox Code Playgroud)