ND4J 中数字精度的降低

Reduction of numbers accuracy in ND4J

我有一个名为“real”的数组。它有一个双数向量。我正在尝试根据我的向量创建一个 INDArray。 我的代码如下:

double real_d = (double) ArrBD.get(0);
INDArray real = Nd4j.create(real_d);

它有效,但不幸的是,它将大数转换为无穷大,将小数转换为零。

在这里你可以看到双数组:

[0.0, 5.911259568298103E-306, -1.8401529637727614E-221, 1.7562463582928743E-268, 2.7206514809021945E-133, 4.583815262762733E90, 2.5637698710586 ....
and here the data of INDArray:
[0.0,0.0,-0.0,0.0,0.0,Infinity,Infinity,-0.0,-0.0 ....

提前感谢您的帮助

如果你想要更精确,你必须设置数据类型。就像 numpy 或任何其他使用 ndarrays 的数学库一样,如果你有浮点数,你会降低精度。由于浮点数的工作方式,这是这些库中任何一个的正常 属性。 创建ndarray时,可以先指定数据类型,也可以手动创建数据缓冲区。