Eingabeformfehler: Flatten vs. Reshape in Keras Dense Layer
In einem typischen Keras-Netzwerk erwartet die Dense Layer abgeflachte Eingabedaten mit eine einzige Dimension. Bei der Verwendung der dichten Ebene mit Eingabedaten höherer Dimensionalität tritt jedoch ein häufiger Fehler auf. Dies kann zu folgender Ausgabe führen:
<tf.Tensor 'dense_2/add:0' shape=(?, 2, 4) dtype=float32>
Verstehen der Diskrepanz
Im Gegensatz zur Dokumentation, die besagt, dass hochdimensionale Eingaben vor der Anwendung der Dichte abgeflacht werden Ebene, jüngste Updates in Keras haben dieses Verhalten geändert. Die Ebene wird nun unabhängig auf die letzte Achse des Eingabetensors angewendet.
Im obigen Beispiel ist die Eingabeform (2, 3). Die dichte Ebene mit 4 Einheiten wird separat auf jede Zeile angewendet, was zu einer Ausgabeform von (2, 4) führt.
Auswirkungen und Überlegungen
Diese Änderung hat bestimmte Auswirkungen Implikationen:
Eine visuelle Illustration
Bedenken Sie zum besseren Verständnis Folgendes Abbildung:
[Bild eines Diagramms, das zeigt, wie eine dichte Ebene auf eine mehrdimensionale Eingabe angewendet wird, wobei die Gewichtungen über die Zeilen hinweg geteilt werden]
Schlussfolgerung
Um den oben genannten Fehler zu vermeiden, stellen Sie sicher, dass die Eingabe in die dichte Ebene vor der Anwendung abgeflacht wird. Alternativ können Sie das neue Verhalten der dichten Schicht beim Umgang mit mehrdimensionalen Eingaben berücksichtigen und dabei die Auswirkungen und potenziellen Vorteile für bestimmte Netzwerkarchitekturen berücksichtigen.
Das obige ist der detaillierte Inhalt vonGeht das Abflachen oder Umformen einer dichten Keras-Schicht mit mehrdimensionaler Eingabe voraus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!