Если это ваш генератор с yield
Это вы создаете генератор, поэтому поведение определяется вами.
Если steps_per_epoch
больше ожидаемых партий, подгонитеничего не увидит, просто будет продолжать запрашивать пакеты, пока не достигнет количества шагов.
Единственное: вы должны убедиться, что ваш генератор бесконечен.
Сделайте это, например, с while True:
в начале.
Если это генератор из ImageDataGenerator
.
Если генератор из ImageDataGenerator
, это на самом деле keras.utils.Sequence
и он имеет свойство length: len(generatorInstance)
.
Тогда вы можете сами проверить, что происходит:
remainingSamples = total_samples % batch_size #confirm that this is gerater than 0
wholeBatches = total_samples // batch_size
totalBatches = wholeBatches + 1
if len(generator) == wholeBatches:
print("missing the last batch")
elif len(generator) == totalBatches:
print("last batch included")
else:
print('weird behavior')
и проверить размер последней партии:
lastBatch = generator[len(generator)-1]
if lastBatch.shape[0] == remainingSamples:
print('last batch contains the remaining samples')
else:
print('last batch is different')