Theano:如何采用元素为矩阵的"矩阵外部产品"

The*_*heo 5 python numpy matrix theano

基本上,我有两个张量:A,其中A.shape = (N, H, D),和B,其中B.shape = (K, H, D).我想做的是得到一个张量C,其形状(N, K, D, H)如下:

C[i, j, :, :] = A[i, :, :] * B[j, :, :]. 
Run Code Online (Sandbox Code Playgroud)

这可以在Theano中有效地完成吗?

附注:我想要实现的实际最终结果是具有形状的张量E,(N, K, D)使得:

E[i, j, :] = (A[i, :, :]*B[j, :, :]).sum(0)
Run Code Online (Sandbox Code Playgroud)

所以,如果有办法直接得到这个,我更喜欢它(希望节省空间).

Div*_*kar 2

可以建议使用一种方法broadcasting-

(A[:,None]*B).sum(2)
Run Code Online (Sandbox Code Playgroud)

请注意,正在创建的中间数组的形状将(N, K, H, D)在求和减少之前确定axis=2(N,K,D).