【发布时间】:2016-07-04 11:30:22
【问题描述】:
我正在尝试使用 3D 张量的正面切片执行矩阵乘法,如下所示。如果X.shape == (N, N) 和Y.shape == (N, N, Y),则生成的张量的形状应为(N, N, Y)。
实现此目的的正确np.tensordot 语法是什么?
我试图将自己限制在np.tensordot,而不是np.einsum,因为我想稍后将此解决方案翻译成Theano。不幸的是,Theano 还没有实现np.einsum。
改编自this paper 关于张量乘法的图形。 非张量点答案等价于以下
tensor = np.random.rand(3, 3, 2)
X = np.random.rand(3, 3)
output = np.zeros((3, 3, 2))
output[:, :, 0] = X.dot(tensor[:, :, 0])
output[:, :, 1] = X.dot(tensor[:, :, 1])
【问题讨论】:
标签: python numpy matrix-multiplication