Формат вывода с использованием разреженной категориальной кросс-энтропии в кератах для мультиклассовой классификации - PullRequest
0 голосов
/ 04 января 2019

Я построил архитектуру u-net с использованием Keras Functional API, но у меня возникли проблемы с использованием функции разреженной категориальной кросс-энтропийной потери. Моя учебная задача - многоклассовая, пиксельная классификация для многих изображений 256x256. Предполагаемый результат - изображения маски 256x256 с целочисленными значениями от 0 до 31 (не каждая маска будет содержать каждый класс). У меня 32 класса, поэтому одноразовое кодирование дает мне ошибку OOM, поэтому я не использую категорическую перекрестную энтропию. Большинство пикселей маски равны 0 (что может быть частью проблемы).

Я продолжаю получать убытки = нан. Я нормализовал свои входные данные, чтобы они имели среднее значение = 0, стандартное отклонение = 1. Если я оставлю маски такими, какие они есть, я получу точность около 0,97, и все выходные маски будут равны 1 с (что, очевидно, неверно). Если я добавлю 1 ко всем своим маскам перед выполнением тренировки, точность будет равна 0. Я использую активацию relu с SoftMax в последнем сверточном слое.

Кажется, проблема, скорее всего, связана с форматом моих выходных данных, поэтому мой главный вопрос: в каком формате он должен быть для разреженной категориальной кросс-энтропии? Должен ли я нормализовать значения маски, чтобы быть 0-1? Кроме того, есть ли какие-либо другие функции потерь или метрики точности, которые я могу использовать для обучения? Насколько классификация мультиклассов идет, единственная функция, о которой я знаю, является категорической перекрестной энтропией. При необходимости я могу предоставить дополнительную информацию о моих данных, сети и т. Д.

...