Почему точность обучения не улучшается? - PullRequest
1 голос
/ 19 февраля 2020

Я пытаюсь провести тренинг по классификации изображений. Просто надо что-то работать. но независимо от того, какую нейронную сеть я использую, все равно я не получаю прогресса. Точность всегда застряла.

Если вы можете получить мне любое предложение, я буду очень рад. Я уже пытался настроить размер партии, et c ...

Вы можете найти все данные и содержимое здесь: https://github.com/marcusdiy/testai

Train for 31 steps, validate for 4 steps
Epoch 1/10
31/31 [==============================] - 11s 352ms/step - loss: -51.9861 - accuracy: 0.0950 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 2/10
31/31 [==============================] - 10s 335ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 3/10
31/31 [==============================] - 10s 334ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 4/10
31/31 [==============================] - 11s 352ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 5/10
31/31 [==============================] - 10s 330ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 6/10
31/31 [==============================] - 10s 331ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 7/10
31/31 [==============================] - 10s 330ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 8/10
31/31 [==============================] - 11s 351ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 9/10
31/31 [==============================] - 11s 355ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833
Epoch 10/10
31/31 [==============================] - 11s 364ms/step - loss: -54.3329 - accuracy: 0.0942 - val_loss: -62.1700 - val_accuracy: 0.0833

Спасибо !

1 Ответ

1 голос
/ 19 февраля 2020

Я не совсем понимаю, что вы делаете, похоже, вы выполняете классификацию по нескольким меткам, используя Sigmoid и binary_crossentropy, что, как следует из названия, позволяет выполнять двоичную классификацию, используя только 2 метки.

Чтобы иметь работающую модель, вы должны изменить свою двоичную модель на мультиклассовую:

  • Измените свой последний плотный слой на: classifier.add(Dense(output_dim=NB_CLASS, activation='softmax'))
  • Измените свою потерю на: classifier.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])
  • Измените ваш поток данных на:
training_set = train_datagen.flow_from_directory(
        'train', target_size=(64, 64), batch_size=32, class_mode='categorical')

test_set = test_datagen.flow_from_directory(
        'test', target_size=(64, 64), batch_size=32, class_mode='categorical')

Оставайтесь на связи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...