1

一开始,这是我在这里的第一个问题,我会尽力描述,
如果我做错了,请注意。

最近,我一直在用 C++ 重写一些 numpy 的东西。
可悲的是,需要这样做的情况。我真的无能为力。
(我可以从 C++ 调用一些 python 命令,但不是全部。)

自然,我从 XTensor 开始,因为它声称 C++ 相当于 numpy。
可悲的是,我一直坚持numpy.einsum
我在互联网上搜索并找到了一些相关的东西,它是如何工作的(至少有点)。

然后我的问题就来了。首先,我需要实现没有->.
Numpy 文档告诉我它有点“隐式模式”(当时也有省略号)。
(稍后描述)我发现了一些 einsum 配置的实现/等价物,
比如'i,ij'和 else。
我想坚持使用 XTensor,因为我已经做了很多事情。
这是我需要用 C++ 在 XTensor 中重新实现的部分代码:

# a is ndarray with shape (1, 28), 2dim
# e is ndarray with shape (1, 28, 3, 17), 4dim

numpy.einsum('...i,...ijk', a, e)

我希望有人能给我解释一下,它指的是什么。
如果你能给我一些想法,我该如何实现它,那将是最好的。
我可以使用任何东西,我想……实际上最终会是什么xt::xarray
在最坏的情况下,我正在考虑从 C++ 调用 python 代码,甚至使用 Google protobuf。

如果您有任何想法或有用的链接,请分享!
(与我发布的代码有关,而不是numpy.einsum一般而言)

4

0 回答 0