Может ли flow_from_directory получить данные об обучении и валидации из одного и того же каталога в Keras? - PullRequest
0 голосов
/ 29 октября 2018

Я получил следующий пример из здесь .

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')

Есть два отдельных каталога для обучения и проверки. Просто любопытно, смогу ли я получить данные об обучении и проверке, разделенные из одного каталога вместо двух отдельных? Любой пример?

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Приведенное выше решение требует от вас применять те же дополнения к набору обучения и проверки, что может быть нежелательным (вы можете не применять сдвиг, поворот и масштабирование и т. Д. К данным проверки). Отдельные дополнения для обучения и проверки из одной и той же папки пока недоступны.

См. https://github.com/keras-team/keras/issues/5862 для полного обсуждения (и некоторых возможных способов справиться с этим). Люди обычно используют сценарии, которые создают новую папку для проверки, но это не будет точным ответом на этот вопрос.

0 голосов
/ 29 октября 2018

Вы можете передать validation_split аргумент (число от 0 до 1) в ImageDataGenerator экземпляр класса, чтобы разделить данные на обучающие и проверочные наборы:

generator = ImagaDataGenerator(..., validation_split=0.3)

И затем передать subset аргумент flow_from_directory, чтобы указать генераторы обучения и проверки:

train_gen = generator.flow_from_directory(dir_path, ..., subset='training')
val_gen = generator.flow_from_directory(dir_path, ..., subset='validation')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...