将数字从一半转换为单个浮点表示时,我看到数值发生了变化。
在这里,我65500
存储为半精度浮点数,但升级到单精度会将基础值更改为65504
,这是远离目标的许多浮点增量。
在这种特定情况下,为什么会发生这种情况?
(Pdb) np.asarray(65500,dtype=np.float16).astype(np.float32)
array(65504., dtype=float32)
作为旁注,我还观察到
(Pdb) int(np.finfo(np.float16).max)
65504