Julia 的 numpy.einsum 吗?

2023-12-20

我想知道如何在 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 个数量级。我可以使用哪些功能?


Doesn't sum(a.*b,(1,2))做你想做的事?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Julia 的 numpy.einsum 吗? 的相关文章

随机推荐