矩阵与ano的三重积



这和这里的矩阵/张量三重积差不多?

所以我有三个矩阵A, B, C,大小为n*r, m*r, l*r,我想计算形状为(n,m,l)的三维张量,由三重(三线性)乘积产生:

X[i,j,k] = sum_a A[i,a] B[j,a] C[k,a]

ABC为共享变量:

A = theano.shared(numpy.random.randn(n,r))
B = theano.shared(numpy.random.randn(m,r))
C = theano.shared(numpy.random.randn(l,r))

我想用一个单一的theano表达式来写,有办法这样做吗?如果有很多,哪一个是最快的?

np.einsum('nr,mr,lr->nml', A, B, C)

等价于

np.dot(A[:, None, :] * B[None, :, :], C.T)

可以在Theano中实现为

theano.dot(A[:, None, :] * B[None, :, :], C.T)

相关内容

  • 没有找到相关文章

最新更新