In einem typischen CNN wird eine Conv-Schicht Y-Filter der Größe NxM haben, und somit hat sie trainierbare N x M x Y-Parameter (ohne Bias).Warum sind meine Keras Conv2D-Kerne 3-dimensional?
Dementsprechend ich im folgenden einfachen Keras-Modell erwarte ich die zweite Conv-Schicht 16 Kernel der Größe (7x7) und damit Kernel-Gewichte der Größe (7x7x16). Warum sind dann seine Gewichte tatsächlich Größe (7x7x8x16)?
Ich verstehe die Mechanik von dem, was passiert: Die Conv2D-Schichten machen tatsächlich eine 3D-Faltung und behandeln die Ausgangskarten der vorherigen Schicht als Kanäle. Es hat 16 3D-Kernel der Größe (7x7x8). Was ich nicht verstehe, ist:
- Warum ist dies Keras Standardverhalten?
- Wie bekomme ich eine "traditionelle" Faltungsschicht, ohne in die Low-Level-API zu fallen (was ist der Grund, Keras überhaupt zu verwenden)?
_
from keras.models import Sequential
from keras.layers import InputLayer, Conv2D
model = Sequential([
InputLayer((101, 101, 1)),
Conv2D(8, (11, 11)),
Conv2D(16, (7, 7))
])
model.weights