keras中带有向量的多重矩阵

Multiple matrix with vector in keras

我正在尝试计算矩阵的每一行与 Keras 中的向量之间的点积。

例如,

x = [[2,3,4,5,5],
     [3,4,5,6,1],
     [5,6,4,2,4],
     [4,2,3,4,1]]

w = [0.1,0.3,0.5,0.2,0.6]

在 numpy 中我可以这样做

[np.dot(xx, w) for xx in x]

但是我如何在 Keras 中做到这一点?

P.S。我简化了表示,我实际上想计算一个句子与另一个词之间的注意力。所以在上面的矩阵中,每个数字对应一个300维的向量,因为它们是相同的维度,所以我只用一个词来表示它们。

我也在这里问过这个问题:https://github.com/fchollet/keras/issues/4680但是那里没有人回答我的问题,请问有人能帮帮我吗?

谢谢。

  1. 如何实现for:我推荐你使用K.tile或者如果你不熟悉tile就使用timedistributed层。你可以想象每一行都是一个时间片。
  2. 如何实现dot:可以定义一个Dense层,然后用l.set_weight()l.trainable=False固定注意力。