Die ursprüngliche Frage bezog sich speziell auf TensorFlow-Implementierungen. Die Antworten beziehen sich jedoch auf Implementierungen im Allgemeinen. Diese allgemeine Antwort ist auch die richtige Antwort für TensorFlow.
Bei der Verwendung von Batch-Normalisierung und Dropout in TensorFlow (insbesondere bei Verwendung der contrib.layers) muss ich dies tun? Machen Sie sich Sorgen wegen der Reihenfolge?
Es scheint möglich, dass es Probleme geben könnte, wenn ich Dropout gefolgt von einer Batch-Normalisierung verwende. Wenn beispielsweise die Verschiebung in den Batch-Normalisierungszügen zu den größeren Skalenzahlen der Trainingsausgaben führt, dieselbe Verschiebung dann aber auf die kleineren Skalenzahlen (aufgrund der Kompensation für mehr Ausgaben) ohne Aussetzer während des Tests angewendet wird, dann ist das der Fall Möglicherweise ist die Schicht ausgeschaltet. Kompensiert die TensorFlow-Batch-Normalisierungsschicht dies automatisch? Oder geschieht dies aus irgendeinem Grund, den ich übersehe, nicht?
Gibt es außerdem noch andere Fallstricke, auf die man achten muss, wenn man diese beiden zusammen verwendet? Angenommen, ich verwende sie in der richtigen Reihenfolge in Bezug auf das oben Genannte (vorausgesetzt, es gibt eine korrekte Reihenfolge), könnte es dann Probleme geben, sowohl die Stapelnormalisierung als auch den Dropout auf mehreren aufeinanderfolgenden Ebenen zu verwenden? Ich sehe darin nicht sofort ein Problem, aber vielleicht übersehe ich etwas.
Vielen Dank!
UPDATE:
Ein experimenteller Test scheint darauf hinzuweisen, dass die Reihenfolge tatsächlich wichtig ist . Ich habe das gleiche Netzwerk zweimal ausgeführt, nur mit der Batch-Norm und der Dropout-Umkehrung. Wenn der Dropout vor der Batch-Norm liegt, scheint der Validierungsverlust zu steigen, während der Trainingsverlust sinkt. Im anderen Fall gehen beide unter. Aber in meinem Fall sind die Bewegungen langsam, sodass sich die Dinge nach mehr Training ändern können und es sich nur um einen einzigen Test handelt. Eine definitivere und fundiertere Antwort wäre immer noch dankbar.
Bestellung von Batch-Normalisierung und Dropout? ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post