2017-01-11 43 views
2

让我们假设我有一个4维张量A,我想用下面的方式3维张量B乘以它:如何在Theano中进行“广义”矩阵运算?

C[i,k,a,b] = sum_{j,l} A[i,j,k,l]*B[a,j,b,l] 

这是矩阵乘法的概括:

z[i,k] = sum_j x[i,j]*y[j,k] 

换言之,我将第一张量的一些指标与第二张量的一些指标进行配对,然后将它们相加。

回答

2

如果我找到你的话,这是由theano.tensor模块的dot功能完成的。

的所有相关信息是在the doc on linear algebra for tensor with theano

你甚至可以走得更远,并指定使用theano.tensor.tensordot总和的轴,所以重现你的榜样,它可能是:

import theano.tensor as T 

A = T.ftensor4() # create a 4 dimensional float32 tensor 
B = T.ftensor4() 

C = T.tensordot(A,B, axes=[[1,3],[1,3]]) # here you can specify on which indices to sum 

print C.ndim 
# >> 4