为什么训练准确率没有提高?

Why training accuracy is not improving?

我正准备做一些图像分类训练。只是要工作的东西。 但无论我使用什么神经网络,我仍然没有任何进展。精度总是卡住。

如果你能给我任何建议,我将非常高兴。我已经尝试调整批量大小等...

您可以在这里找到所有数据和内容: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

谢谢!

我不太明白你在做什么,看起来你正在使用 Sigmoidbinary_crossentropy 执行多标签 classification,正如名称建议允许进行二进制 class化,只有 2 个标签。

为了拥有一个工作模型,您必须将二进制模型更改为多 class 一个:

  • 将最后一个密集层更改为: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')

让我保持联系!