Возможно ли дообучение модели на 2 из 4 классов?

Есть модель EfficientNet, обученная на ImageNet и переобученная различать картинки своих 4 классов. Справляется вполне неплохо. Но можно и нужно чуть получше.

Поступили новые, вручную разобранные изображения для только 2 из 4 классов.
35 одного класса и 425 другого. Может, это вообще слишком мало изображний, не стоит и пытаться на них до-обучать?

Пытаюсь дообучить модель на этих изображениях. Training : Validation = 0.8 : 0.2
Создал папку, с подпапками для каждого из 4 классов, но файлы, соотв. есть только в двух.
Использую Keras ImageDataGenerator и его метод flow_from_directory()

Создатель модели так же тренировал её рабочую версию на 3500 картинок и получил accuracy 0.98755

Но у меня результат — никакой: модель начинает ошибочной всё записывать в один из этих двух классов, даже изображения из ранее нормально узнаваемых двух нетронутых классов.

Во время обучения на training выдаёт минимальные потери и accuracy около 1, но на validation loss высокий и accuracy держится в районе всего 0.21 — 0.25

ЧЯДНТ?
  • Вопрос задан
  • 251 просмотр
Решения вопроса 1
@OLZ1
Из вашего повествования вытекают по меньшей мере два вывода: либо "что-то не то" с данными, либо выбрана неверная конфигурация модели. При работе с несбалансированными данными выручает перетасовка. Попробуйте при тренировке модели перетасовать данные [history = model.fit(..., shuffle=True)] / flow_from_dataframe(..., shuffle=True). Я бы ориентировался на решения Keras, с которыми "расщёлкали" задачу набора MNIST [ссылка] с высокой точностью.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы