Функция Keras fit_generator (datagen.flow (X_train)) делает меньше снимков, чем X_train? - PullRequest
0 голосов
/ 30 апреля 2019

Я использую функцию keras fit_generator(datagen.flow()) для обучения своей начальной модели, я так растерялся из-за количества снимков, которые она делает в каждую эпоху.Может кто-нибудь, пожалуйста, помогите мне рассказать это Как это работает.Мой код ниже.

Я использую эту документацию keras.

from keras.preprocessing.image import ImageDataGenerator
datagen = ImageDataGenerator(rotation_range = 15, horizontal_flip = True)

# Fitting the model with
history = inc_model.fit_generator(datagen.flow(X_train, train_labels, batch_size=10), epochs=20, validation_data = (X_test, test_labels), callbacks=None)

Теперь мои общие изображения в X_train равны 4676. Однако, каждый раз, когда я запускаю этулиния истории, я получаю

Epoch 1/20
936/936 [========================] - 167s 179ms/step - loss: 1.4236 - acc: 0.3853 - val_loss: 1.0858 - val_acc: 0.5641

Почему она не берет все мои X_train изображения?Кроме того, если я поменяю batch_size с 10 на, скажем, 15, он начнет снимать меньше, например

Epoch 1/20 
436/436

Спасибо.

1 Ответ

2 голосов
/ 30 апреля 2019

936 и 436 фактически относятся к партиям образцов за эпоху.Вы устанавливаете размер партии на 10 и 15, поэтому в каждом случае модель обучается на 936 X 10 и 436 X 15 выборках за эпоху.Образцы даже больше, чем ваш первоначальный обучающий набор, так как вы используете ImageDataGenerator, который создает дополнительные обучающие экземпляры, применяя преобразования к существующим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...