Ошибка: «В вашем итераторе набора данных закончились данные» - другой результат с одинаковым размером шага в Tensorflow 1.X и Tensorflow 2.X? - PullRequest
0 голосов
/ 29 мая 2020

У меня есть классификационная тетрадь для сверточной нейронной сети в Colaboratory. Я наблюдаю ошибку подгонки в TF 2.X, которой нет в TF 1.X, и хотел понять причину этого.

Ошибка возникает во время шага подгонки

result=model.fit_generator(train_batches,
steps_per_epoch = 100,
validation_data = valid_batches,
validation_steps = 50,
epochs = 20,                     
)   

Размер моего набора данных составлял 168 обучающих изображений, 28 проверочных изображений с размером пакета 32. Обратите внимание, что оба моих шага произвольно установлены на большое число. Установка его на num_samples // batch_size привела к значительно более быстрому обучению (меньше шагов за эпоху), но с худшей точностью проверки. Этот подход отлично работал с TF 1.X.

Однако при запуске в TF 2.X я получаю сообщение об ошибке:

«Ваш итератор набора данных исчерпал данные»

Затем я был вынужден изменить шаги steps_per_epoch и проверки на num_samples // batch_size, но это привело к тому, что моя модель работала значительно хуже, чем раньше. Я считаю, что это связано с меньшим объемом обучающих данных, которые я загружаю на партию, но это только догадка.

Какой здесь правильный протокол? Кормил ли я сразу весь набор данных? Как TF 1.X обрабатывает искусственно большие размеры шагов по сравнению с TF 2.X?

Спасибо.

...