Was ist y_true und y_pred beim erstellen einer benutzerdefinierten Metrik in Keras?

Ich umsetzen will, meine benutzerdefinierte Metrik in Keras. Laut der Dokumentation, meine benutzerdefinierte Metrik sollte definiert werden als eine Funktion, die als Eingabe zwei Tensoren, y_pred und y_true aus und liefert eine single-tensor-Wert.

Aber ich bin verwirrt, was genau enthalten sind, werden diese Tensoren y_pred und y_true wenn die Optimierung läuft. Es ist nur ein Datenpunkt? Ist es der gesamte Stapel? Das ganze Epoche (vermutlich nicht)? Gibt es eine Möglichkeit um diese Tensoren' Formen?

Kann jemand darauf, um eine Vertrauenswürdige Stelle, wo ich diese Informationen erhalten? Jede Hilfe würde geschätzt werden. Nicht sicher, ob relevant, aber ich bin mit TensorFlow backend.


Dinge, die ich bisher ausprobiert, um diese zu beantworten:

  • Überprüfung der Keras Metriken Dokumentation (keine Erklärung darüber, was diese Tensoren sind).
  • Überprüfung der source-code für die Keras Metriken und versuchen diese zu verstehen, Tensoren, indem man die Keras Umsetzung für die anderen Metriken (Dies scheint darauf hinzuweisen, dass y_true und y_pred haben die Etiketten für einen ganzen Stapel, aber ich bin mir nicht sicher).
  • Lesen dieser stackoverflow-Fragen: Eins, Zwei, Drei, und andere (keiner meine Frage beantworten, die meisten sind zentriert auf dem OP nicht klar verstehen den Unterschied zwischen einem tensor und die Werte berechnet, die tensor während der Sitzung).
  • Drucken der Werte von y_true und y_pred während der Optimierung durch die Definition einer Metrik wie diese:
    def test_metric(y_true, y_pred):
        y_true = K.print_tensor(y_true)
        y_pred = K.print_tensor(y_pred)
        return y_true - y_pred

(leider sind diese nicht alles drucken während der Optimierung).

InformationsquelleAutor JLagana | 2017-10-10
Schreibe einen Kommentar