Ich habe ein Netzwerk, das einen 4D-Ausgangstensor erzeugt, wobei der Wert an jeder Position in räumlichen Dimensionen (~ Pixel) als die Klassenwahrscheinlichkeiten für diese Position interpretiert werden soll. Mit anderen Worten, der Ausgang ist (num_batches, height, width, num_classes)
. Ich habe Etiketten der gleichen Größe, wo die echte Klasse als ein-hot codiert ist. Ich möchte den categorical-crossentropy
Verlust damit berechnen.Wie man Punkt-kategorischen Crossentropie-Verlust in Keras macht?
Problem # 1: Die K.softmax
Funktion erwartet einen 2D
Tensor (num_batches, num_classes)
Problem # 2: Ich bin nicht sicher, wie die Verluste aus jeder Position kombiniert werden sollen. Ist es korrekt, reshape
der Tensor zu (num_batches * height * width, num_classes)
und dann K.categorical_crossentropy
auf diesem Aufruf? Oder rufen Sie einfach K.categorical_crossentropy(num_batches, num_classes)
Höhe * Breite mal und Durchschnitt der Ergebnisse?
Welches Backend verwenden Sie? –
@ MarcinMożejko Ich benutze TensorFlow - könnte entweder die Keras Backend API oder TF eigenen Funktionen, ist entweder in Ordnung. Vielen Dank! –
Ich habe Ihre Frage beantwortet :-) –