Ich benutze Keras, um ein CNN zu machen, und ich möchte das Modell mit plot_model()
visualisieren.Keras Schichtform in plot_model()
Wenn ich auf die Form der Conv2d
Schichten schaue, gibt es eine Sache, die ich nicht herausfinden kann.
Lassen Sie uns sagen, dass meine Conv2d
Schicht Kerngröße [8 x 8]
hat, schreiten [4 by 4]
ist, Polsterung ist 'same'
und ich möchte 16 Feature-Karten.
Eingabeform für diese Ebene ist [None, 3, 160, 320]
und Ausgabe ist [None,1,40,16]
.
"Keine" ist Proben, aber was ist 1 und 40? Ich denke, 16 ist die Anzahl der Feature-Maps?
Da ich padding = 'same'
implementiert habe, sollte die Bildgröße nicht die gleiche Breite und Höhe wie Eingabe haben, oder ist das nicht die gleiche Sache?
Danke!
Rohbild Eingangsdaten [None, 3, 160, 320], das ist [Proben, die Farbtiefe, Höhe, Breite]. Wende ich Faltung auf die falschen Dimensionen an? Zeigt dies an, dass sich der Kernel in der Tiefe x Höhe bewegt? Sollte sich der Kernel nicht in der Höhe x Breite bewegen? – NorwegianClassic
Ja, dies zeigt an, dass Ihre Abmessungen invertiert sind. Keras Standard 'data_format' ist' 'channels_last'':' (Beispiele, Höhe, Breite, Kanäle) '. Beachten Sie die "16 Features" an der letzten Position. –
Sie können dies ändern, wenn Sie, indem Sie den 'data_format = 'channels_first'' in den Schichten werden sollen, oder die globale Einstellung zu ändern in der' \ .keras \ keras.json' Datei. --- ' 'channels_last'' hat einige Vorteile in Bezug auf bestimmte Klassifikationsprobleme, Verluste und Aktivierungen, die die letzte Dimension verwenden. –