2017-11-25 4 views
-1

Nach dem Training des Modells Wie kann ich meine Metriken vorhersagen und bewerten?
-Code ist wie folgt:Vorhersagen und Bewerten von Metriken in Keras

for patch in generator(): 
    pred = model.predict(np.array(patch, dtype=patch.dtype)) 

    loss_val_partial,accuracy_val_partial = model.test_on_batch(np.array(patch, dtype=patch.dtype),pred) 

oder so:

for patch in generator(): 
    pred = model.predict(np.array(patch, dtype=patch.dtype)) 

    loss_val_partial,accuracy_val_partial = model.test_on_batch(ground_truth,pred) 

wo Boden Wahrheit das wahre Etikett des Pflasters ist.

Ich glaube nicht die erste ist richtig, weil die Genauigkeit immer 1,0

+0

Wenn es half dann akzeptieren Sie bitte die Antwort – DAXaholic

Antwort

2
ist

Das Problem in Ihrer ersten Codeliste ist, dass Sie zunächst die Ausgabe mit Ihrem Modell vorhersagen und dann dieses Ergebnis pred als Grund Wahrheit verwenden für den Test, so dass Sie natürlich wird eine Genauigkeit von 1,0

haben die signature für die test_on_batch Methode Siehe:

test_on_batch(self, x, y, sample_weight=None) 

so kann ich es nicht testen, mich für y ou, weil Sie nur einen Teil Ihres Codes (z. Ich weiß nicht, wo Sie Ihren Boden Wahrheit aus) kommt, aber so etwas wie dies versuchen, das heißt nur die manuelle Vorhersage Schritt entfernen, da es für Sie intern erfolgt in test_on_batch:

for patch in generator(): 
    loss_val_partial,accuracy_val_partial = model.test_on_batch(np.array(patch, dtype=patch.dtype), ground_truth) 
+0

test_on_batch Methode gibt die Vorhersage nicht zurück Ich brauche sowohl Vorhersage als auch Metriken ... deshalb benutze ich auch vorher sagen – leoScomme

+0

yeah das ist in Ordnung, aber übertrage deine Vorhersage nicht als Grundwahrheit, da dies falsch ist (was du selbst mit deinem acc = erkannt hast) 1.0) – DAXaholic

+0

ok, also ist die Lösung die Ihre, aber wenn ich auch die Vorhersage möchte, muss ich die Vorhersage-Methode hinzufügen, richtig? – leoScomme

Verwandte Themen