以17742644 + 239为例,正确结果应为17742883,但是以np.float32类型求和,则存在求和误差,
因此在以numpy作为底层数值运算库的深度学习框架中,使用float32类型时,可能会与理论值存在差距。
以下代码为在spyder中运行,spyder版本为:Spyder 5.0.0
Python 3.8.8 (default, Apr 13 2021, 15:08:03) [MSC v.1916 64 bit (AMD64)]
import numpy as np
np.__version__
Out[2]: '1.18.5'
np.float32(17742644) + np.float32(239)
Out[3]: 17742884.0
np.float64(17742644) + np.float64(239)
Out[4]: 17742883.0
17742644 + 239
Out[5]: 17742883