如何计算Keras中的矢量点积?

时间:2017-05-08 17:25:55

标签: tensorflow deep-learning keras

我希望在Keras中计算出矢量明智的点积。 详细地说,我的意思是如果我有两个张量AB,两者都具有形状(None, 30, 100),我想计算结果C,其形状(None, 30, 1)将满足

C[:,:,i] = dot(A[:,:,i], B[:,:,i]).

我想知道这是否可行,因为后端的batch_dot()函数只返回形状(None, 30, 30)并且只有关系

C[:,i,j] = dot(A[:,:,i], B[:,:,j])

但这不是我想要的。

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以尝试以下内容:

import keras.backend as K

C = K.sum(A * B,axis=-1,keepdims=True)

答案 1 :(得分:2)

batch_dot功能适合您,只需包含正确的轴。假设A.shape = (2,3,4)B.shape = (2,3,1),您将获得C形状的(2,4,1)

C = K.batch_dot(A, B, axes=1)