8

Was ist der Unterschied zwischen categorical_accuracy und sparse_categorical_accuracy in Keras? Es gibt keinen Hinweis in der , und indem ich Dr. Google frage, habe ich auch keine Antworten dafür gefunden.Keras - Unterschied zwischen categorical_accuracy und sparse_categorical_accuracy

Der Quellcode gefunden here werden kann:

def categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.argmax(y_true, axis=-1), 
          K.argmax(y_pred, axis=-1)), 
        K.floatx()) 


def sparse_categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.max(y_true, axis=-1), 
          K.cast(K.argmax(y_pred, axis=-1), K.floatx())), 
        K.floatx()) 
+0

Vielleicht kann dies helfen: https://stackoverflow.com/a/43546939/3374996. Etwas mit Zielen zu tun. Ich bin mir nicht sicher, ob es sich bei den Zielen um die y_true, y_pred um spärlich oder die Ausgabe der kategorischen Genauigkeit um spärliche Werte handelt. –

Antwort

5

. Mit Blick auf die source

def categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.argmax(y_true, axis=-1), 
          K.argmax(y_pred, axis=-1)), 
        K.floatx()) 


def sparse_categorical_accuracy(y_true, y_pred): 
    return K.cast(K.equal(K.max(y_true, axis=-1), 
          K.cast(K.argmax(y_pred, axis=-1), K.floatx())), 
K.floatx()) 

categorical_accuracy überprüft, ob der Index des wahren Wertes maximal zum Index des maximalen vorhergesagten Wert gleich ist.

sparse_categorical_accuracy überprüft, ob der maximale wahre Wert dem Index des maximalen vorhergesagten Werts entspricht.

Von Marcin Antwort über den categorical_accuracy auf einen für y_trueone-hot codierten Vektor entspricht.

10

So in categorical_accuracy müssen Sie Ihr Ziel (y) als one-hot kodierten Vektor angeben (zB im Fall von drei Klassen, wenn eine echte Klasse ist zweite Klasse soll y(0, 1, 0) seine in sparse_categorical_accuracy Sie brauchen nur eine ganze Zahl der wahren Klasse bieten sollte. (im Fall von vorherigem Beispiel - es 1 wäre als Klassen Indizierung ist 0 -Basis)

+0

War meine Antwort hilfreich? –

+0

Es war nützlich für mich :) –

Verwandte Themen