Your input ran out of data; interrupting training
Вылезает ошибка недостатка данных. Примерно 4-5 дней назад этой ошибки на этом же коде не было. Код создания модели:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(27, 48, 1)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Activation("relu"))
model.add(Dropout(0.5))
model.add(Dense(10))
model.add(Activation('sigmoid'))
model.compile(loss="categorical_crossentropy", optimizer="adam",
metrics=["accuracy"])
Код обучения
datagen = ImageDataGenerator()
dirTrain = "/content/GeneratedI/train"
train_data = datagen.flow_from_directory(dirTrain, target_size=(27, 48), batch_size=100,
class_mode="categorical", color_mode="grayscale")
dirVal = "/content/GeneratedI/val"
validation_data = datagen.flow_from_directory(dirVal, target_size=(27, 48), batch_size=100,
class_mode="categorical", color_mode="grayscale")
print("Training the network...")
t_start = time.time()
history = model.fit_generator(train_data,
steps_per_epoch=60000 // 10,
epochs=1,
validation_data=validation_data,
validation_steps=10000 // 10)
print(time.time() - t_start)
Собственно изображения точно есть, 60к на обучение и 10к на валидацию. Даже вывод это подтверждает:
Found 60000 images belonging to 10 classes.
Found 10000 images belonging to 10 classes.
Использую Google Colaboratory
Ответы (1 шт):
Автор решения: feeeper
→ Ссылка
history = model.fit_generator(train_data,
steps_per_epoch=60000 // 10, # <-- 1
epochs=1,
validation_data=validation_data,
validation_steps=10000 // 10) # <-- 2
В первом и втором случае делить требуется на размер батча. У вас это 100, судя по генератору:
train_data = datagen.flow_from_directory(dirTrain,
target_size=(27, 48),
batch_size=100, # <-- 3
class_mode="categorical",
color_mode="grayscale")