Задать вопрос
Artur3194
@Artur3194

Проблема с настройкой обучения нейронной сети в Google Colab?

Всем привет!
При попытке обучения модели MobileNetV2 на своем наборе данных получается точность на всех итерациях равна 50%.
Хотя этот же набор данных по итогу показал точность 95.4% для модели YOLOv8, с нормальным графиком mAP.
Датасет представлен в формате PASCAL VOC.
Вот моя реализация: Google Colab
Вот результат процесса обучения:
Epoch 1/10
14/14 [==============================] - 38s 3s/step - loss: 1.6671 - accuracy: 0.5000 - val_loss: 0.7270 - val_accuracy: 0.5000
Epoch 2/10
14/14 [==============================] - 20s 1s/step - loss: 0.7397 - accuracy: 0.5000 - val_loss: 0.7171 - val_accuracy: 0.5000
Epoch 3/10
14/14 [==============================] - 21s 1s/step - loss: 0.7059 - accuracy: 0.5000 - val_loss: 0.7006 - val_accuracy: 0.5000
Epoch 4/10
14/14 [==============================] - 22s 2s/step - loss: 0.6966 - accuracy: 0.5000 - val_loss: 0.6960 - val_accuracy: 0.5000
Epoch 5/10
14/14 [==============================] - 20s 1s/step - loss: 0.6946 - accuracy: 0.5000 - val_loss: 0.6946 - val_accuracy: 0.5000
Epoch 6/10
14/14 [==============================] - 19s 1s/step - loss: 0.6942 - accuracy: 0.5000 - val_loss: 0.6944 - val_accuracy: 0.5000
Epoch 7/10
14/14 [==============================] - 21s 1s/step - loss: 0.6940 - accuracy: 0.5000 - val_loss: 0.6943 - val_accuracy: 0.5000
Epoch 8/10
14/14 [==============================] - 20s 1s/step - loss: 0.6938 - accuracy: 0.5000 - val_loss: 0.6942 - val_accuracy: 0.5000
Epoch 9/10
14/14 [==============================] - 19s 1s/step - loss: 0.6937 - accuracy: 0.5000 - val_loss: 0.6942 - val_accuracy: 0.5000
Epoch 10/10
14/14 [==============================] - 19s 1s/step - loss: 0.6936 - accuracy: 0.5000 - val_loss: 0.6942 - val_accuracy: 0.5000

Что я делаю не так?
  • Вопрос задан
  • 191 просмотр
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ressiwage
учитывая, что точность везде ровно 0.5, это значит, что нейросеть всегда предсказывает один класс из двух. возможно у вас слишком большой/слишком маленький шаг обучения в адаме. попробуйте шаги от 10^-3 до 10^-10 в цикле, на первых 10-20 эпохах. если не поможет, ищите проблему в данных.
for i in range(3, 10+1):
  model.compile(optimizer=Adam(math.pow(10, -i)), ...)
  model.fit(...)

также такое переобучение может быть из-за непосредственно данных, в моем проекте все веса моментально разгонялись до единицы, потому что я неправильно скейлил фото, и оно было не [0, 1], а [0,255]

у lrs кстати сигнатура другая, может он у вас не срабатывает даже.
66449082c08cb910280676.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы