Я использую следующий код для обучения моей модели CNN с изображениями счетов-фактур.
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(train_data_dir,
target_size =(img_width, img_height),
batch_size = batch_size)
validation_generator = test_datagen.flow_from_directory(
validation_data_dir,
target_size =(img_width, img_height),
batch_size = batch_size)
model.fit_generator(train_generator,
steps_per_epoch = nb_train_samples // batch_size,
epochs = epochs, validation_data = validation_generator,
validation_steps = nb_validation_samples // batch_size)
Проблема в том, что я использовал только вертикальные изображения в моем наборе обучающих данных. Все мои изображения похожи на следующее изображение:
![An upright image that was used during the training](https://i.stack.imgur.com/T2ucs.png)
После тренировки, когда я хочу отправить изображение, как показано ниже, моя модель не может предсказать правильный класс .
![wrong predicted image](https://i.stack.imgur.com/5CQV6.png)
Как вы видите ниже, я посылаю горизонтальный_флип = True для ImageDataGenerator
train_datagen = ImageDataGenerator(
rescale = 1. / 255,
shear_range = 0.2,
zoom_range = 0.2,
horizontal_flip = True
)
Как я могу изменить свой код, чтобы он мог предсказывать даже перевернутые изображения. Или я должен использовать перевернутые вручную изображения в наборе тренировочных данных?