我是 Keras 的新人。我想实现一个并非所有权重都会更新的层。例如,在下面的代码中,我想要dilation
图层将以某些中心权重永远不会更新的方式进行更新。例如,每个特征矩阵(共 1024 个)的形状dilation
层是448, 448
和一块8x8
所有特征矩阵的中心永远不会更新,即8x8
block 是特征矩阵的(不可训练的)掩模。
input_layer=Input(shape=(896,896,3))
new_layer = Conv2D(32, kernel_size=(3,3), padding="same", activation='relu', kernel_initializer='he_normal')(input_layer)
new_layer = MaxPooling2D(pool_size=(2, 2), strides=(2,2), padding='same', data_format=None)(new_layer)
new_layer = Conv2D(64, kernel_size=(3,3), padding='same', activation='relu', kernel_initializer='he_normal')(new_layer)
new_layer = Conv2D(1024, kernel_size=(7,7), dilation_rate=8, padding="same", activation='relu', kernel_initializer='he_normal', name='dialation')(new_layer)
new_layer = Conv2D(32, kernel_size=(1,1), padding="same", activation='relu', kernel_initializer='he_normal')(new_layer)
new_layer = Conv2D(32, kernel_size=(1,1), padding="same", activation='relu', kernel_initializer='he_normal')(new_layer)
model = Model(input_layer, new_layer)
我正在尝试使用 Keras 的custom layer
[link] https://keras.io/layers/writing-your-own-keras-layers/,但我很难理解。任何人都请帮忙。
UPDATE:
为了更好地理解,我添加了下图。膨胀层包含 1024 个特征。我希望每个特征的中间区域是不可训练的(静态)。