首页 > 解决方案 > 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我知道由于浮点数学,我无法得到那个确切的数字。但是我怎样才能调试/提高精度以接近所需的数字。谢谢

更新:

    xt::xarray<double> Layer::call(xt::xarray<double> input)
    {
        return xt::linalg::dot(input, this->weight) + this->bias;
    }

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

标签: c++xtensor

解决方案


推荐阅读