问题标签 [xtensor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
46 浏览

visual-c++ - 根据列值在 2D 伸肌表中查找单元格

我想根据表中一列中的匹配单元格读取 2D xtensor 表的一个单元格。

考虑 std::string 类型元素的二维表:

我想读取第一列=='fo'的行中第三个单元格的值,即'P'

在互联网上搜索建议使用似乎未实现的函数 xt::keep() 的代码。如何使用实际实现的 xt 函数来执行此操作

0 投票
1 回答
32 浏览

c++ - xt::xexpression 在此上下文中受到保护

考虑以下代码:

这无法编译,并出现以下错误:test.cpp:24:66: error: ‘xt::xexpression<D>::~xexpression() [with D = float]’ is protected within this context. 当更改xt::xexpression<float> (正确的返回类型)时,auto它会编译并运行。如果xt::expression是受保护的,为什么可以auto访问它?有没有一种方法可以指定类型而不是使用auto,而不评估 x 表达式?(即我不能有abe的类型xt::xarray,因为这会强制评估)。

0 投票
2 回答
37 浏览

c++ - 如何在 xt::filter 中使用相等?

0 投票
1 回答
52 浏览

numpy - xtensor 相当于 numpy a[a>3] = 1

标题说 - 什么是 numpy 的 xtensor 等价物

?

它看起来像xt::filter作品:

但看起来 numpy 版本要快得多。我已经用 xsimd 构建了 xtensor,但在这种情况下似乎没有帮助。有没有更好、更简单的方法来做到这一点?

编辑

我发现filtration,它确实更快(大约 3 倍),但仍然比 numpy 慢(大约 10 倍)......

解决方案(谢谢汤姆!)

是最快的 - 比 快大约 10 倍filtration,所以它看起来像是 simd-d!

0 投票
0 回答
166 浏览

python - C++ 中是否有任何 scipy interp1d 等价物?

我一直致力于将 python 库移植到 C++,因为我需要制作一个依赖它的程序,但事实上它是在 python 中使用 cython 和各种库(如 scipy 等),这使得将它移植到各种平台变得困难。我能够找到诸如 xtensor 之类的库来帮助我将 NumPy 调用调整为等效代码,以便以准确的方式移植代码,但是我在这一行有点挣扎:

它似乎依赖于 scipy 的 interp1d 函数,我在 C++ 中真的找不到任何等价物

我想知道是否有人知道我可以在 C++ 中调整这条线的方法?

如果有帮助,这里是我正在处理的函数的完整原始代码的链接 https://github.com/r9y9/nnmnkwii/blob/master/nnmnkwii/preprocessing/f0.py

0 投票
0 回答
30 浏览

c++ - 带有 xtensor fftw 的多维数组的 fft 如何工作?

我正在为我的项目使用 fftw 的xtensor 集成,我想在 3D 数组的最后一个轴上做一个 fft。

如果我这样做:

它输出这个:

这不是我所期望的。但是,如果我在 1D xtensor 上执行 fft,它可以正常工作。我找不到合适的文档,所以如果有人知道怎么做,请告诉我。谢谢 :)

0 投票
0 回答
113 浏览

c++ - C++ lambda 函数中强制 decltype 的情况

有一个名为xtensor的张量代数库。a * b + c它具有特殊的语义:当您形成多个变量的表达式(如)时,您通常将它们std::movestd::forward它们放入该表达式中。当您在表达式中多次使用变量时,这样做的一种好方法(如官方文档中所述)是创建额外的 lambda 函数,该函数采用该变量并在内部多次使用它。显然你不能简单地写sin(std::move(A)) + cos(std::move(A))。你必须写这样的东西:

问题是这段代码在没有decltype.

xtensor的代码中,您可以找到注释:

auto如果可能, lambda 函数会自动矢量化xsimd(请注意,尾随-> decltype(...)对于特征检测是必需的)。

我的问题是:为什么可能有必要以decltype这样一种方式使用返回类型的自动扣除是不够的(或足够但不是特别有效)?

我不明白为什么decltype必须在这种情况下使用。我不想在每个这样的函数中写两次相同的表达式。(decltype如果我有多行带有临时变量的代码,该怎么办)

0 投票
0 回答
65 浏览

c++ - 为什么 xtensor 中的第一个示例无法运行?

我通过 conda 安装 xtensor

我找到了安装xtensor的位置,

第一个示例由xtensor docs给出,即

我跟着它并在linux服务器中运行命令

但是命令报错,日志太长,部分如下:

提前感谢您的任何帮助/建议。

0 投票
0 回答
42 浏览

c++ - C++ Xtensor 增加浮点有效数

我正在构建一个神经网络并在前馈中使用 xtensor 进行数组乘法。网络接收xt::xarray<double>并输出一个介于 0 和 1 之间的十进制数。我得到了一张预期输出的表格。当我将我的输出与提供的表格进行比较时,我发现所有结果在 7 位数字后都不同。例如,如果所需的值是0.1234567890123456,我得到的值是0.1234567-garbage-numbers-so-that-total-numbers-equal-16, 0.1234567993344660, 0.1234567221155667

0.1234567890123456我知道由于浮点数学,我无法得到那个确切的数字。但是我怎样才能调试/提高精度以接近所需的数字。谢谢

更新:

对于代码,我只是在数组中多次调用此方法callweightbiasxt::xarray<double>

0 投票
1 回答
53 浏览

c++ - 如何在 Bazel 工作区中构建仅标头的 C++ 库?

我正在开发一个 C++ 项目,我需要 Numpy 之类的 C++ 中的数组和功能。我找到了一些替代品,例如xtensorNumCpp等。这些是仅标头库。问题是我第一次尝试使用 Bazel,所以我不知道如何将仅标头库添加到 Bazel 工作区。关于 Bazel 的其他问题,有一些建议,例如 genrule-environment、rules-foreign-cc。我已将 http_archive 添加到 WORKSPACE 文件,但我不确定要在 BUILD 文件中添加什么。

工作区文件

我试图遵循文档,但每次都失败了。一些帮助将不胜感激。