我可以使用keras.layers.concatenate
来连接两层,然后将它们发送到下一层,但是如果我想参加两层的一部分,然后将它们连接然后再发送到下一层,该怎么办?>
例如,我要使用第一层conv层,第二层conv层和最后一个池化层的一部分,然后将它们连接在一起以形成一层。但是Keras是一个高级图书馆,我们如何参与其中?
通过查看论文A Network-based End-to-End Trainable Task-oriented Dialogue System中的图2,您可以更好地理解我。
答案 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])
)。