Я пытаюсь создать Unet для задачи сегментации для соревнований Kaggle. У нас есть около 5500 изображений, которые содержат 4 маски из 4 разных этикеток. Масок так много, что для этого требуется собственный генератор данных, поскольку все маски не помещаются в памяти.
Кстати, я использую библиотеку моделей сегментации , отличную реализацию Unet для Keras. Нет необходимости заново изобретать колесо, если некоторые люди проделали большую работу.
Однако мои потери и оценки в кости на валидации действительно плохие, и я не могу точно определить, почему. Вот оценки потерь и костей: Оценка костей Потеря
Я должен упомянуть, что сейчас я только пытаюсь предсказать один из ярлыков, поскольку они довольнонезависимый.
Я пробовал уменьшать и увеличивать размер пакета (до максимального значения ОЗУ графического процессора, поэтому можно увеличить его);снижение скорости обучения, добавление clipnorm к lr, изменение функции потерь, и все это известные способы предотвращения переоснащения. Однако это выглядит больше, чем обычное переоснащение, просто похоже, что модель хорошо учится на тренировках, но затем все проверяется, как если бы она изучала противоположное тому, что предполагалось.
Я также нарисовал некоторые прогнозы, сделанные на тестовом наборе, и все они похожи: 5 тестовых прогнозов .
Я не знаю, как решить эту проблему, яЯ пытался осмотреться, но большинство сообщений о переоснащении просто идут в обычное «Добавить отсев или понизить скорость обучения», что здесь не очень полезно.
Вот мой KaggleЗаписная книжка с кодом, который я запускаю.
Спасибо большое!