我想了解float16和float32在结果精度方面的实际差异。例如,NumPy允许您选择所需的数据类型(np.float16, np.float32, np.float64)的范围。我担心的是,如果我决定使用float16来保留内存并避免可能的溢出,那么与float32相比,这会导致最终结果的丢失吗?
float16
float32
(np.float16, np.float32, np.float64)
mqkwyuun1#
a = np.array([0.123456789121212,2,3], dtype=np.float16) print("16bit: ", a[0]) a = np.array([0.123456789121212,2,3], dtype=np.float32) print("32bit: ", a[0]) b = np.array([0.123456789121212121212,2,3], dtype=np.float64) print("64bit: ", b[0])
字符串
ggazkfy82#
float 32是一个32位的数字-float 64使用64位。这意味着float 64占用了两倍的内存-在某些机器架构中,对它们进行操作可能会慢得多。然而,float 64可以比32位浮点数更准确地表示数字。它们还允许存储更大的数字。对于您的Python-Numpy项目,我相信您知道输入变量及其性质。要做出决定,我们作为程序员需要问自己1.我的输出需要什么样的精度?1.速度不是问题吗?1.百万分之几的精度是多少?一个简单的例子是,如果我将我所在城市的天气数据存储为[12.3,14.5,11.1,9.9,12.2,8.2]第二天的预测输出可能为11.5或11.5164374你认为有必要存储浮点数32或浮点数64吗?
tyky79it3#
float32比float64精确度低,但比float64快,float64比float32精确,但消耗更多内存。如果精度比速度更重要,可以使用float64。如果速度比精度更重要,可以使用float32。
3条答案
按热度按时间mqkwyuun1#
字符串
ggazkfy82#
float 32是一个32位的数字-float 64使用64位。
这意味着float 64占用了两倍的内存-在某些机器架构中,对它们进行操作可能会慢得多。
然而,float 64可以比32位浮点数更准确地表示数字。
它们还允许存储更大的数字。
对于您的Python-Numpy项目,我相信您知道输入变量及其性质。
要做出决定,我们作为程序员需要问自己
1.我的输出需要什么样的精度?
1.速度不是问题吗?
1.百万分之几的精度是多少?
一个简单的例子是,如果我将我所在城市的天气数据存储为[12.3,14.5,11.1,9.9,12.2,8.2]
第二天的预测输出可能为11.5或11.5164374
你认为有必要存储浮点数32或浮点数64吗?
tyky79it3#
float32比float64精确度低,但比float64快,float64比float32精确,但消耗更多内存。如果精度比速度更重要,可以使用float64。如果速度比精度更重要,可以使用float32。