我希望在Keras中计算出矢量明智的点积。
详细地说,我的意思是如果我有两个张量A
和B
,两者都具有形状(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])
但这不是我想要的。
谢谢!
答案 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)