2017-07-19 7 views
0

In letzter Zeit habe ich versucht, die Ergebnisse von this post zu replizieren, aber mit TensorFlow anstelle von Keras. Mein Modellverlust konvergiert jedoch nicht als in the code provided. Ich habe darauf geachtet, die gleichen vom Autor verwendeten Parameter zu verwenden, auch die nicht explizit gezeigten. Mein vollständiger Code kann here gesehen werden.Tensorflow - Verlust nicht abnehmend

Ich habe bereits verschiedene Lernraten, Optimierer und Losgrößen ausprobiert, aber diese haben das Ergebnis nicht sehr beeinflusst.

Ich habe hier in StackOverflow und StackExchange eine Reihe anderer Fragen zu diesem Problem gefunden, aber die meisten hatten überhaupt keine Antwort. Die Fragen mit Antworten haben jedoch nicht geholfen.

Ich bin mit TensorFlow 1.1.0, Python 3.6 und Windows 10.

Das Seltsame ist, dass wir die gleiche Datenbank und das gleiche Modell, sondern nur unterschiedliche Rahmenbedingungen. Es sollte also kein völlig anderes Verhalten geben. Hat jemand Vorschläge, was ich versuchen sollte, dieses Problem zu lösen, bitte?

+0

Kurzer Kommentar: Sie sollten "' is_training "verwenden, um den Abbruch während des Tests zu deaktivieren. Außerdem scheint Ihr Netzwerk immer Nullen auszugeben, daher sind die Gradienten wertlos. Haben Sie versucht, den Dropout zu deaktivieren? –

+0

Warum ist Ihr Verlust bedeutet quadratischen Fehler und warum ist tanh die Aktivierung für etwas, das Sie "Logits" nennen? –

+0

Sie haben Recht, @ JonasAdler, ich habe kein Dropout verwendet, da "is_training" der Standardwert False ist, also war meine Ausgabe unberührt. Ich habe versucht, es jetzt wahr zu machen, aber das Problem passiert immer noch. –

Antwort

4

Ich lief Ihren Code im Grunde unverändert, aber ich habe die Form Ihrer tf_labels und logits betrachtet und sie sind nicht das Gleiche. logits hatten die Form (batch_size, 1,1,1) (weil Sie einen 1x1 Faltungsfilter verwendet haben) und tf_labels hatten eine Form (batch_size, 1). Ich änderte Ihre Verlustlinie zu

und der Verlust sank jede Epoche.

+0

Vielen Dank, @Ryan. Es funktionierte! Ich habe die letzten 2 Wochen verloren, um den Verlust mit anderen bekannten Methoden zu minimieren, aber der Fehler war mit einer ganz anderen Sache verbunden. Danke, dass du mir gezeigt hast, was und warum es passiert ist. Ich werde Ihre Antwort abstimmen, sobald ich genug Reputationspunkte habe. –

Verwandte Themen