Мне трудно понять, как работает flow_from_directory из ImageDataGenerator , я использую следующий код для дополнения данных изображения для моей модели CNN, поскольку нет доступных обучающих изображенийочень меньше.
batch_size = 16
from keras.preprocessing.image import ImageDataGenerator
train_transformed = 'dataset/train_transformed'
train_datagen = ImageDataGenerator(
rescale=1./255,
horizontal_flip=True,
fill_mode='nearest')
train_generator = train_datagen.flow_from_directory(
'dataset/train',
target_size=(150, 150),
batch_size=batch_size,
class_mode='binary',
save_to_dir=train_transformed,
save_prefix='train_aug',
save_format='png')
Это проблема двоичной классификации, имеющая 20 положительных и 20 отрицательных изображений.Итак, у меня есть папка dataset / train с 2 подпапками по 20 изображений в каждой.Когда я тренирую модель с помощью вышеуказанного генератора изображений, я вижу 4160 изображений, сохраняемых в папке dataset / train_transformed и предполагающих 4160 изображений, используемых для обучения модели.
model.fit_generator(
train_generator,
steps_per_epoch=1000 // batch_size,
epochs=5,
validation_data=validation_generator,
validation_steps=100 // batch_size)
Согласно моему пониманию, количество выборок в каждой эпохе = batch_size X steps_per_epoch
Поскольку мои steps_per_epoch = 1000/16 = 62,
# выборки в каждой эпохе должны быть 62 x 16 = 992
Число эпох не установлено равным 5, поэтому общее количество сгенерированных изображений должно составлять 992 x 5 = 4960 .
И ни одно из сгенерированных изображений не является случайным с такими же гиперпараметрами.
Просто нужно пояснение для вышеуказанной конфигурации.