1

Ich bekomme ein Problem, wenn ich im2txt Quellcode in im2txt lesen.Batch_loss und total_loss = tf.get_total_loss() in Tensorflow

Es gibt batch_loss und total_loss: batch_loss wird für jede Chargendaten berechnet und wird in tf.Graphkeys.LOSSES von tf.add_loss(batch_loss) Anruf hinzugefügt. Die total_loss ist von tf.losses.get_total_loss(), die den gesamten Verlust in tf.Graphkeys.LOSSES Durchschnitt.

Frage: warum Parameter von total_loss aktualisiert werden? Ich war viele Tage von diesem Problem verwirrt.

+0

Ich habe nichts verstanden. Wie wirkt sich die Schadensmeldung auf Backpropagation und Parameter-Updates aus? – Maxim

+0

meiner Meinung nach Parameter werden von Batch_loss aktualisiert, die von jeder Batch-Daten berechnet werden sollte, ist dies in Machine Learning, in [im2txt] (https://github.com/tensorflow/models/blob/master/research/ im2txt/im2txt/show_and_tell_model.py), der gesamte Datensatz ist in viele Stapel unterteilt, und im2txt berechnete den Verlust jeder Stapeldaten und fügte den Verlust in tf.Graphkeys.LOSSES hinzu, berechnete dann den total_loss und schließlich die Parameter durch total_loss Warum werden die Parameter also von total_loss, nicht aber vom Batch_loss aktualisiert? – legend4917

+0

Backprop und Parameteraktualisierung hängen von dem bewerteten Verlust * derivate * ab. Der rohe Verlustwert ist nur eine Hilfsinformation. – Maxim

Antwort

0

Die Zusammenfassung der Diskussion in den Kommentaren:

Der Trainingsverlust im Vorwärtsdurchlauf über das Mini-Batch berechnet wird. Aber die tatsächlichen Verlustwerte werden nicht benötigt, um den backprop zu beginnen. Der Backprop wird mit dem Fehlersignal gestartet, das gleich der Verlustfunktionsableitung ist, die bei den Werten aus dem Vorwärtsdurchlauf ausgewertet wird. Daher beeinflusst der Verlustwert nicht die Aktualisierung der Parameter und wird lediglich zur Überwachung des Trainingsprozesses gemeldet. Zum Beispiel, wenn der Verlust nicht abnimmt, ist es ein Zeichen, das neuronale Netzwerkmodell und Hyperparameter doppelt zu überprüfen. Es ist also keine große Sache, den gemeldeten Verlust durch Mittelwertbildung zu glätten, nur um ein Diagramm schöner zu machen.

Weitere Informationen finden Sie unter this post.