Как модифицировать Keras Layers после тренировки - PullRequest
0 голосов
/ 30 января 2020

Я загрузил предварительно обученный Re sNet (см. Код ниже) и хочу воспроизвести статью, в которой авторы написали:

Затем мы уменьшаем шаг первых сверточных слоев банка conv5 от 2 px до 1 px для предотвращения понижающей дискретизации. Затем мы добавляем отверстия ко всем сверлениям 3x3 в conv5, чтобы сохранить их рецептивное поле. Это уменьшает шаг полного CNN до 16 пикселей. DeeperCut: более глубокая, сильная и быстрая модель оценки поз для нескольких человек

Возможно ли это с предварительно обученным Re sNet, и если, как это делается в керасах?

Мой текущий код:

base_model = ResNet50(include_top=False, weights='imagenet')

x = base_model.output
x = Conv2DTranspose(1, kernel_size=[3, 3], strides=2, kernel_regularizer=l2(0.0001))(x)
pred = Conv2DTranspose(1, kernel_size=[3, 3], strides=2, kernel_regularizer=l2(0.0001))(x)

model = Model(inputs=base_model.input, outputs=pred)

for layer in base_model.layers:
    layer.trainable = False

model.compile(optimizer='adam', loss='categorical_crossentropy')

Как мне изменить банк conv5 здесь? Или я должен подготовить для этого совершенно новую сеть?

...