Я новичок в Керасе. Я хочу реализовать слой, где не все веса будут обновлены. Например, в следующем коде я хочу, чтобы слой dilation
обновлялся таким образом, чтобы некоторые веса центра никогда не обновлялись. Например, форма каждой матрицы объектов (из 1024) в слое dilation
равна 448, 448
, и блок 8x8
в центре всех матриц объектов никогда не будет обновлен, то есть блок 8x8
(не обучаемая) маска для матриц объектов.
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)
Я пытался с custom layer
[ссылка] Кераса, но мне было трудно понять. Любой, пожалуйста, помогите.
UPDATE :
Я добавил следующий рисунок для лучшего понимания. Слой расширения содержит 1024 объекта. Я хочу, чтобы средняя область каждого объекта была необучаемой (статической).