Node.js 张量除法精度误差
我在节点v10.0.0上使用v0.10.3,通过简单的算术运算得到以下输出Node.js 张量除法精度误差,node.js,tensorflow,tensorflow.js,Node.js,Tensorflow,Tensorflow.js,我在节点v10.0.0上使用v0.10.3,通过简单的算术运算得到以下输出 > import * as tf from '@tensorflow/tfjs' > tf.print(tf.tensor1d([10]).div(tf.scalar(3))) Tensor [3.3333333] > tf.tensor1d([10]).div(tf.scalar(3)).get(0) 3.3333332538604736 > 10 / 3 3.3333333333
> import * as tf from '@tensorflow/tfjs'
> tf.print(tf.tensor1d([10]).div(tf.scalar(3)))
Tensor
[3.3333333]
> tf.tensor1d([10]).div(tf.scalar(3)).get(0)
3.3333332538604736
> 10 / 3
3.3333333333333335
为什么可以在一个简单的除法中得到不同的结果?tensorflow很可能使用32位浮点来存储值,但这些值会被javascript转换回64位浮点,就像javascript中的浮点一样
作为一个例子,在Python中考虑以下内容:
import numpy as np
a = np.float32(10.0)
b = np.float32(3.0)
print(a/b)
> 3.3333333
print(np.float64(a/b))
> 3.3333332538604736
a = np.float64(10.0)
b = np.float64(3.0)
print(a/b)
> 3.3333333333333335