如何在Keras中串联三层的一部分?

时间:2018-12-30 15:59:42

标签: python tensorflow keras deep-learning nlp

我可以使用keras.layers.concatenate来连接两层,然后将它们发送到下一层,但是如果我想参加两层的一部分,然后将它们连接然后再发送到下一层,该怎么办?

例如,我要使用第一层conv层,第二层conv层和最后一个池化层的一部分,然后将它们连接在一起以形成一层。但是Keras是一个高级图书馆,我们如何参与其中?

通过查看论文A Network-based End-to-End Trainable Task-oriented Dialogue System中的图2,您可以更好地理解我。

1 个答案:

答案 0 :(得分:2)

好吧,您可以根据需要对其进行切片,就像对numpy数组或Python列表进行切片并使用<a href="#" class="btn btn-default" ̶n̶g̶-̶m̶o̶d̶e̶l̶=̶"̶t̶o̶d̶o̶s̶"̶ ng-click="getTodo()"> Get Todo </a> 的方式一样,都位于K.concatenate层中。例如:

Lambda

请注意,第一个轴是批处理轴,因此您可能希望保留所有轴(即如上所述使用from keras import backend as K # ... out = Lambda(lambda x: K.concatenate([x[0][:,:10], x[1][:,:10], x[2][:,:10]], axis=the_concat_axis))([conv1, conv2, pool]) )。