2017-04-09 7 views
13

Die Keras Schicht Dokumentation gibt an die Ein- und Ausgangsgrößen für Faltungsschichten: https://keras.io/layers/convolutional/Keras Conv2D und Eingangskanäle

Eingangsform: (samples, channels, rows, cols)

Ausgang Form: (samples, filters, new_rows, new_cols)

und die Kernel Größe ist ein räumlicher Parameter, dh bestimmt nur Breite und Höhe.

So ein Eingang mit c Kanäle wird eine Ausgabe mit filters Kanäle unabhängig von dem Wert c. Es muss daher eine 2D-Faltung mit einem räumlichen height x width-Filter anwenden und dann die Ergebnisse irgendwie für jedes erlernte Filter aggregieren.

Was ist dieser Aggregationsoperator? Ist es eine Zusammenfassung über Kanäle? Kann ich es kontrollieren? Ich konnte keine Informationen über die Keras-Dokumentation finden.

Danke.

+0

Sie müssen lesen [diese] (http://cs231n.github.io/ Faltungsnetzwerke /). –

+0

Von dieser Seite: "Im Ausgangsvolumen ist die d-te Tiefenscheibe (der Größe W2 × H2) das Ergebnis der Durchführung einer gültigen Faltung des d-ten Filters über das Eingangsvolumen mit einer Schrittweite von SS und dann Offset von d-th Bias. ". Ich folge also nicht, wie diese Faltungen eines Volumes mit einem 2D-Kern zu einem 2D-Ergebnis werden. Wird die Tiefenabmessung durch Summation reduziert? – yoki

+1

"Beispiel 1 Angenommen, das Eingangsvolumen hat die Größe [32x32x3] (z. B. ein RGB-CIFAR-10-Bild). Wenn das rezeptive Feld (oder die Filtergröße) 5x5 ist, wird jedes Neuron in der Conv-Schicht Gewichte im Bereich [5x5x3] im Eingangsvolumen haben, also insgesamt 5 * 5 * 3 = 75 Gewichte (und +1 Bias-Parameter) Beachten Sie, dass das Ausmaß der Konnektivität entlang der Tiefenachse 3 sein muss, da dies der Fall ist ist die Tiefe des Eingangsvolumens. " - Ich denke, Sie vermissen es ist 3D-Kernel [Breite, Höhe, Tiefe]. Das Ergebnis ist eine summierung über Kanäle hinweg. –

Antwort

5

Es könnte verwirrend sein, dass es Conv2D Schicht genannt wird (es mir war, weshalb die ich für diese Antwort kam suchen), denn wie Nilesh Birari kommentiert:

ich denke, Sie vermissen es ist 3D-Kernel [Breite, Höhe, Tiefe]. Das Ergebnis ist eine summierung über Kanäle hinweg.

Vielleicht die 2D ergibt sich aus der Tatsache, dass der Kern nur Dias entlang zwei Dimensionen, ist die dritte Dimension festgelegt und durch die Anzahl von Eingangskanälen (die Eingangstiefe) bestimmt.

Für eine ausführlichere Erklärung lesen https://petewarden.com/2015/04/20/why-gemm-is-at-the-heart-of-deep-learning/

ich von dort ein anschauliches Bild gerupft:

kernel depth

+2

Also hat jeder Kanal des Filters ihre eigenen Gewichte, die optimiert werden können? Oder berechnen wir nur die Gewichte für einen Kanal und verwenden diese als Werte für die restlichen Kanäle des Filters. – Moondra

Verwandte Themen