Является ли параметр «validation_split» в Keras «ImageDataGenerator» своего рода K-кратной перекрестной проверкой? - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь выполнить K-кратную перекрестную проверку на модели Keras (с ImageDataGenerator и flow_from_directory для данных обучения и проверки), я хочу знать, если аргумент "validation_split" в "ImageDataGenerator"

    test_datagen = ImageDataGenerator(
    rescale=1. / 255,
    rotation_range = 180,
    width_shift_range = 0.2,
    height_shift_range = 0.2,
    brightness_range = (0.8, 1.2),
    shear_range = 0.2,
    zoom_range = 0.2,
    horizontal_flip = True,
    vertical_flip = True,
    validation_split = 0.1

)

train_datagen = ImageDataGenerator(
    rotation_range = 180,
    width_shift_range = 0.2,
    height_shift_range = 0.2,
    brightness_range = (0.8, 1.2),
    rescale = 1. / 255,
    shear_range = 0.2,
    zoom_range = 0.2,
    horizontal_flip = True,
    vertical_flip = True,
    validation_split = 0.1
)

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

validation_generator = test_datagen.flow_from_directory(
    validation_data_dir,
    target_size = (img_width, img_height),
    batch_size = batch_size,
    class_mode = 'binary',
    seed = 42
)

history = model.fit_generator(
    train_generator,
    steps_per_epoch = nb_train_samples // batch_size,
    epochs = epochs,
    validation_data = validation_generator,
    validation_steps = nb_validation_samples // batch_size)

Означает ли "validation_split = 0.1", что я уже провел 10-кратную перекрестную проверку моего набора данных?

1 Ответ

0 голосов
/ 03 мая 2019

Нет.Проверка выполняется только один раз.Из официального документа :

validation_split : число между 0 и 1. Часть данных обучения, которые будут использоваться в качестве данных проверки.Модель выделит эту часть обучающих данных, не будет обучаться им и будет оценивать потери и любые метрики модели на этих данных в конце каждой эпохи.Данные проверки выбираются из последних выборок в предоставленных данных x и y перед перетасовкой.

Таким образом, установка validation_split=0.1 просто удерживает последние 10% ваших данных от обучения и использует их.в качестве набора проверки.

Если вы хотите выполнить проверку по кросс-схеме, вы должны сделать это вручную.Вот хорошая отправная точка: Оценка производительности моделей глубокого обучения в Keras

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...