Это делается с помощью функций предварительной обработки изображений из Keras.
Я приведу некоторые пояснения относительно примера из документации Keras (пожалуйста, прочитайте документы для получения дополнительной информации.)
Эта предварительная обработка обеспечивает конвейер для обучения, и есть .flow_from_directory()
-метод для чтения из локальной файловой системы.
В этом примере из документов изображения дополняются путем их горизонтального перелистывания иприменяя диапазон сдвига и диапазон увеличения 0,2. Изменение масштаба выполняется для нормализации значений RGB в диапазоне от 0 до 1:
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')
model.fit_generator(
train_generator,
steps_per_epoch=2000,
epochs=50,
validation_data=validation_generator,
validation_steps=800)
С этим ImageDataGenerator вы используете .fit_generator()
-метод (вместо .fit()
), чтобы использовать этот подготовленный конвейердля обработки вашей модели.
steps_per_epoch * batch_size должен равняться размеру ваших обучающих данных. validation_steps * batch_size должен равняться размеру ваших проверочных данных.