Снижение точности чисел в ND4J

У меня есть массив, а именно «настоящий». у него есть вектор двойных чисел. Я пытаюсь создать 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 ....

Я ценю вашу помощь заранее


person Amir Shamaee    schedule 13.08.2020    source источник


Ответы (1)


Если вы хотите большей точности, вы должны установить тип данных. Точно так же, как numpy или любая другая математическая библиотека, которая работает с ndarrays, если у вас есть числа с плавающей запятой, вы получите пониженную точность. Это нормальное свойство любой из этих библиотек только из-за того, как работают числа с плавающей запятой. При создании ndarray вы можете сначала указать тип данных или создать буфер данных вручную.

person Adam Gibson    schedule 13.08.2020