我想知道如何在 Julia 中获得类似于 numpy.einsum 的功能。
具体来说,我有一个三阶张量,我希望将其乘以一个二阶张量(矩阵),收缩两个维度以产生一阶张量(向量)。
目前,我正在使用 PyCall,这样我就可以像这样使用 numpy.einsum 函数:
using PyCall
@pyimport numpy as np
a = rand(5,4,3)
b = rand(5,4)
c = np.einsum("ijk,ij", a,b)
size(c) == (3,)
依靠调用 python 来进行张量数学运算感觉有点傻。我还认为 julia 的实现会有速度优势。但是,我在 julia 中对此没有任何功能,而且蛮力求和要慢 1-2 个数量级。我可以使用哪些功能?
最佳答案
sum(a.*b,(1,2))
不是您想要的吗?
关于linear-algebra - Julia 的 numpy.einsum?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521574/