Nan*_*Nan 6 python floating-point numpy
我想知道如何将numpy从float32强制转换为float16,因为当我使用astype将一些像8193的数字从float32强制转换为float16时,它将输出8192,而将10000的float32强制转换为10000的float16。
import numpy as np
a = np.array([8193], dtype=np.float32)
b = a.astype(np.float16)
Run Code Online (Sandbox Code Playgroud)
IEEE 754-2008 16位基数2格式(又名binary16)不能给您带来很多精度。您对16位有什么期望?:) 1位是符号位,5位用于指数,剩下10位存储归一化的11位尾数,因此> 2 ** 11 == 2048的任何内容都必须进行量化。
根据Wikipedia的说法,介于4097和8192之间的整数四舍五入为4的倍数,而介于8193和16384之间的整数四舍五入为8的倍数。
| 归档时间: |
|
| 查看次数: |
11917 次 |
| 最近记录: |