У меня есть сеть, которая создает выходной тензор 4D, где значение в каждой позиции в пространственных измерениях (~ пиксель) должно интерпретироваться как вероятности класса для этой позиции. Другими словами, на выходе будет (num_batches, height, width, num_classes)
. У меня есть ярлыки того же размера, где реальный класс закодирован как горячий. Я хотел бы рассчитать categorical-crossentropy
убыток, используя это.
Проблема №1. Функция K.softmax
ожидает 2D
тензор (num_batches, num_classes)
Проблема №2: я не знаю, как следует объединить убытки от каждой позиции. Правильно ли reshape
тензор на (num_batches * height * width, num_classes)
, а затем вызывать K.categorical_crossentropy
для этого? Или, скорее, вызовите K.categorical_crossentropy(num_batches, num_classes)
высоту * ширину раз и усредните результаты?