Keras如何对层的输出进行切片,然后将其添加到模型中

Keras如何对层的输出进行切片,然后将其添加到模型中,keras,keras-layer,Keras,Keras Layer,我有一个输出[N,100100,2]的层 我只想使用[N,100100,0],我已经使用了切片(层[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 = s

我有一个输出[N,100100,2]的层

我只想使用[N,100100,0],我已经使用了切片(层[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])

Keras中没有内置的切片层,但您可以使用Lambda层

在您的情况下,您可以使用Lambda层,而不是使用来自
keras.backend的slice

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

你尝试过什么?发布你的相关代码。编辑以包含相关的端口。我是Keras的新手,请你解释一下如何实现它。我找不到任何关于假人的清晰文档。X是一个单独的函数吗?如果是,可以在其中调用slice函数吗?
输出将被视为X,它将返回
>x[:,:,:,0]
。这里x只是一个变量名。有关详细信息,您可以搜索python的Lamba表达式/函数。其工作方式类似。