Я пытаюсь создать простой классификатор двоичных изображений, используя 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
Программы на Python
-
Anonymous
1731815973
Anonymous
Я пытаюсь создать простой классификатор двоичных изображений, используя Keras и Python. Каждая вторая эпоха обучения возвращает ноль для точности, потерь, val_accuracy и val_loss. Остальные эпохи проходят нормально, и обучение проходит нормально. Я тренируюсь на 25000 уникальных изображениях с тремя наборами сверток и объединением. У меня есть разделение 90-10 для изображений для обучения/тестирования, и все изображения перемешиваются. В настоящее время я использую оптимизатор Adam и нормализованный ImageDataGenerator для своих меток и данных.
[b]Вот ошибка:[/b]
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...
[b]Вот структура моей модели:[/b]
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()]
)
Подробнее здесь: [url]https://stackoverflow.com/questions/77668911/every-second-keras-epoch-returns-zero-in-all-logs[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия