Keras点积层(按最后一个轴)

Dik*_*rAz 5 keras keras-layer

我有暹罗网络,可以为图像生成特征图,如何使用Keras获得这些特征图的点积?

input_a = Input(input_size)
input_b = Input(input_size)
fe_net_a = model(input_a)
fe_net_b = model(input_b)
Run Code Online (Sandbox Code Playgroud)

例如,如果输出张量为fe_net_a且fe_net_b具有形状(1、17、17、1024),则如何创建将产生形状为(1、17、17)的张量的层,并取最后一个轴的点积?

Nas*_*Ben 0

从该merge.Dot()函数的 keras 文档中,这是您要寻找的吗?

from keras.layers import Input, dot

input_a = Input(input_size)
input_b = Input(input_size)
fe_net_a = model(input_a)
fe_net_b = model(input_b)

fe_ab = dot([fe_net_a,fe_net_b], axes = -1)
Run Code Online (Sandbox Code Playgroud)

那对你有用吗 ?

  • ```>>> input_size=20, 10, 3 >>> input_a = 输入(input_size) >>> input_b = 输入(input_size) >>> fe_ab = 点([input_a, input_b],axes=-1) > >> fe_ab <tf.Tensor 'dot_2/MatMul:0' shape=(?, 20, 10, 10) dtype=float32>``` (3认同)
  • 不,它产生形状为 (1, 17, 17, 17) 的张量。我是 Keras 和深度学习的新手,所以我不知道为什么要这样做。 (2认同)