Я пытаюсь создать простой классификатор двоичных изображений, используя Keras и Python. Каждая вторая эпоха обучения возвращает ноль для точности, потерь, val_accuracy и val_loss. Остальные эпохи проходят нормально, и обучение проходит нормально. Я тренируюсь на 25000 уникальных изображениях с тремя наборами сверток и объединением. У меня есть разделение 90-10 для изображений для обучения/тестирования, и все изображения перемешиваются. В настоящее время я использую оптимизатор Adam и нормализованный ImageDataGenerator для своих меток и данных.
Вот ошибка:
Epoch 1/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 170s 2s/step - accuracy: 0.9974 - loss: 0.4769 - val_accuracy: 0.7968 - val_loss: 0.9699
Epoch 2/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 0s 1ms/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00
Epoch 3/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 175s 2s/step - accuracy: 0.9988 - loss: 0.4260 - val_accuracy: 0.8052 - val_loss: 0.9283
Epoch 4/20
90/90 ━━━━━━━━━━━━━━━━━━━━ 0s 728us/step - accuracy: 0.0000e+00 - loss: 0.0000e+00 - val_accuracy: 0.0000e+00 - val_loss: 0.0000e+00
etc...
Вот структура моей модели:
model1 = keras.models.Sequential([
keras.layers.Conv2D(16,(3,3), activation='relu', input_shape=(150, 150, 3)),
keras.layers.MaxPooling2D(2,2),
keras.layers.BatchNormalization(),
keras.layers.Conv2D(32,(3,3), activation='relu'),
keras.layers.MaxPooling2D(2,2),
keras.layers.BatchNormalization(),
keras.layers.Conv2D(64,(3,3), activation='relu'),
keras.layers.MaxPooling2D(2,2),
keras.layers.BatchNormalization(),
keras.layers.Flatten(),
keras.layers.Dense(512, activation='relu', kernel_regularizer=regularizers.l2(0.001)),
keras.layers.Dropout(0.2),
keras.layers.Dense(1, activation='sigmoid')
])
model1.compile(optimizer=Adam(learning_rate=0.0002), loss='binary_crossentropy', metrics=['accuracy'])
train_CD = ImageDataGenerator(rescale=1.0/255.)
train_generator_CD = train_CD.flow_from_directory(
'./images/cat_dog/train_data/',
target_size = (150, 150),
batch_size = 250,
class_mode = 'binary')
test_CD = ImageDataGenerator(rescale=1.0/255.)
test_generator_CD = test_CD.flow_from_directory(
'./images/cat_dog/test_data/',
target_size = (150, 150),
batch_size = 250,
class_mode = 'binary')
history1=model1.fit(
train_generator_CD,
validation_data = test_generator_CD,
epochs = 20,
steps_per_epoch = 90,
validation_steps = 10,
callbacks=[myCallback()]
)
Подробнее здесь: https://stackoverflow.com/questions/776 ... n-all-logs
Каждую вторую эпоху Keras возвращает ноль во всех журналах. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Ручная обратная связь (ручная проверка) при обучении модели каждую эпоху
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-