Можно ли многократно вызывать fit-генератор, чтобы делать увеличение данных? - PullRequest
0 голосов
/ 13 февраля 2020

Я новичок в области CNN. У меня есть набор данных, мне нужно настроить модель VGG. Мой набор данных настолько мал, что я бы хотел увеличить объем данных на тренировочном наборе, чтобы преодолеть возникшую проблему с переобучением. Я бы использовал несколько аугментаций с разными степенями поворота (10 °, 20 ° и т. Д. c). Но я не знаю, как я могу сделать это в python, используя Keras: я должен много раз вызывать fit_generator (после каждого imageDataGenerator)! см. код 1, или я должен много раз вызывать imageDataGenerator и, наконец, вызывать генератор подгонки! см. код 2.


код 1:

train_datagen = ImageDataGenerator(rescale=1. / 255,rotation_range=10)
train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(224, 224),
    batch_size=batch_size,
    class_mode='categorical', shuffle= True)

model.fit_generator(
    train_generator,
    samples_per_epoch=120,
    epochs=epochs)


train_datagen = ImageDataGenerator(rescale=1. / 255,rotation_range=30
train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(224, 224),
    batch_size=batch_size,
    class_mode='categorical', shuffle= True)

model.fit_generator(
    train_generator,
    samples_per_epoch=120,
    epochs=epochs)

код 2:

  train_datagen = ImageDataGenerator(rescale=1. / 255,rotation_range=10)
    train_generator = train_datagen.flow_from_directory(
    train_data_dir,
    target_size=(224, 224),
    batch_size=batch_size,
    class_mode='categorical', shuffle= True)

    train_datagen = ImageDataGenerator(rescale=1. / 255,rotation_range=30)
    train_generator = train_datagen.flow_from_directory(
        train_data_dir,
        target_size=(224, 224),
        batch_size=batch_size,
        class_mode='categorical', shuffle= True)

 model.fit_generator(
    train_generator,
    samples_per_epoch=120,
    epochs=epochs,
    )
...