Keras, как нарезать вывод слоя и затем добавить его в модель - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть слой, который выводит [N, 100,100,2]

Я хочу использовать только [N, 100,100,0], я использовал slice (layer, [0,0,0, 0], [- 1, -1, -1,1], чтобы получить это, однако я не могу добавить этот нарезанный вывод в модель, поскольку это не слой.

Как это делается.

Может ли кто-нибудь предоставить фрагмент кода.

c3 = Convolution2D(2, (1, 1),strides=(1,1),padding='same',use_bias=True,activation='softmax')
output = (c3)(output)
slicedoutput = slice(output,[0,0,0,0],[-1,-1,-1,1])
classifier = Model(inputs=[image_a],outputs=[slicedoutput,outputboxes])

1 Ответ

1 голос
/ 10 февраля 2020

В Keras нет встроенного слоя срезов. Но вы можете использовать лямбда-слой для своих целей.

В вашем случае вместо использования среза из keras.backend вы можете использовать лямбда-слой

slicedoutput = Lambda(lambda x: x[:,:,:,0])(output)
...