Я новичок в области 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,
)