Как получить карту весов в мультиклассовой классификации изображений - PullRequest
2 голосов
/ 18 апреля 2019

Я делаю мультиклассовую сегментацию изображений с использованием keras и TensorFlow.Моя обученная сеть дает мне хорошие прогнозы, но не позволяет разделить соприкасающиеся объекты, поэтому я хочу использовать функцию softmax_cross_entropy loss, которая имеет параметр "weights".

Как я могу рассчитать эти веса, зная, что мойy_true форма (batch-size,128,128,3)?

tf.losses.softmax_cross_entropy(y_true,y_pred,weights=my_weights)

Ответы [ 2 ]

0 голосов
/ 18 апреля 2019

Вы можете использовать sklearn для вычисления веса класса для несбалансированного набора данных.И используйте эти рассчитанные параметры, чтобы назначить weights в tf.losses.softmax_cross_entropy.Это поможет решить вашу проблему.

0 голосов
/ 18 апреля 2019

Согласно документации tf.losses.softmax_cross_entropy, вы можете использовать этот параметр, чтобы по-разному взвешивать образцы из каждой партии, и это должен быть тензор формы batch_size.

weights действует как коэффициент потерь. Если скаляр предоставляется, тогда потеря просто масштабируется данным значением. Если weights является тензор формы [batch_size], то веса потерь применяются к каждому соответствующий образец.

Однако, этот ответ показывает, как назначить разные веса для каждого класса (возможно, у вас есть несбалансированный набор данных?). Я думаю, это больше, чем вы могли бы достичь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...