Keras сплит-тест, установленный при использовании ImageDataGenerator

У меня есть один каталог, который содержит подпапки (в соответствии с метками) изображений. Я хочу разбить эти данные на поезд и тестовый набор при использовании ImageDataGenerator в Keras. Хотя model.fit() в keras имеет аргумент validation_split для указания разделения, я не мог найти то же самое для model.fit_generator(). Как это сделать?

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

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

model.fit_generator(
    train_generator,
    samples_per_epoch=nb_train_samples,
    nb_epoch=nb_epoch,
    validation_data=??,
    nb_val_samples=nb_validation_samples)

У меня нет отдельного каталога для данных валидации, нужно разбить его на данные обучения

Ответ 1

Keras теперь добавил разделение Train/validation из одного каталога с помощью ImageDataGenerator:

train_datagen = ImageDataGenerator(rescale=1./255,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    validation_split=0.2) # set validation split

train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode='binary',
    subset='training') # set as training data

validation_generator = train_datagen.flow_from_directory(
    train_data_dir, # same directory as training data
    target_size=(img_height, img_width),
    batch_size=batch_size,
    class_mode='binary',
    subset='validation') # set as validation data

model.fit_generator(
    train_generator,
    steps_per_epoch = train_generator.samples // batch_size,
    validation_data = validation_generator, 
    validation_steps = validation_generator.samples // batch_size,
    epochs = nb_epochs)

https://keras.io/preprocessing/image/

Ответ 2

У меня есть