В настоящее время я пытаюсь подобрать модель, используя генератор данных для обучения и тестирования, полученный из двух каталогов.
train_datagen = ImageDataGenerator(rescale = 1./255, horizontal_flip = True)
# output: Found 440 images belonging to 2 classes.
test_datagen = ImageDataGenerator(rescale=1./255)
# output: Found 554 images belonging to 2 classes.
training_generator = train_datagen.flow_from_directory('dir', batch_size=20, class_mode='categorical')
testing_generator = test_datagen.flow_from_directory('dir', batch_size=30, class_mode='categorical')
Когда я пытаюсь запустить:
history = model.fit_generator(training_generator, epochs=150, validation_data=testing_generator, callbacks= [early_stopping_monitor, model_checkpoint])
Я добираюсь до последней партии и получаю одну из двух ошибок StopIteration.
Для размера партии = 20 я получаю:
Epoch 1/150
21/22 [==================>..] - ETA: 0s - loss: 0.8482 - acc: 0.5619
Traceback (mostrecent call last):
...
File "...\keras\engine\\training_generator.py", line 309, in evaluate_generator
generator_output=next(output_generator)
File "..\keras\utils\data_utils.py", line 583, in get
six.raise_from(StopIteration(e), e)
StopIteration: tile cannot extend outside image
Для размера партии = 24 я получаю:
Epoch 1/150
18/19 [==================>..] - ETA: 0s - loss: 0.8482 - acc: 0.5619
Traceback (mostrecent call last):
...
File "...\keras\engine\\training_generator.py", line 309, in evaluate_generator
generator_output=next(output_generator)
File "..\keras\utils\data_utils.py", line 583, in get
six.raise_from(StopIteration(e), e)
StopIteration: -2
Я не понимаю. Я видел это: StopIteration: generator_output = next (output_generator) , но, похоже, это был человек, делающий свой собственный генератор данных, поэтому кодер отвечает за постоянную способность генератора предоставлять данные. Но я использую flow_from_directory, поэтому разве это не должно быть достаточно умным, чтобы понять, как всегда предоставлять данные?
Я также читал, что, возможно, проблема в том, что PIL пытается получить доступ за пределами моих изображений. Я написал скрипт для просмотра каталогов изображений, открытия и проверки их с помощью PIL в соответствии с: Как проверить, является ли файл допустимым файлом изображения? , но все каталоги не вызывают исключение.
Что мне здесь не хватает?