常用的数据类型有FP64、FP32、FP16、BFLOAT16等
FP64
FP64表示64位浮点数,通常为IEEE 754定义的双精度二进制浮点格式,由1位符号位、11位指数位、52位小数位组成
表示范围:
- 正数范围:约 4.9 x 10e-324 ~ 1.8 x 10e308
- 负数范围:约 -1.8 x 10e308 ~ -4.9 x 10e-324
通常用于精度要求较高的科学计算,一般不用于深度学习
FP32
FP32表示32位浮点数,通常为IEEE 754定义的单精度二进制浮点格式,由1位符号位、8位指数位、23位小数位组成
表示范围:
- 正数范围:约 1.4 x 10e-45 ~ 3.4 x 10e38
- 负数范围:约 -3.4 x 10e38 ~ -1.4 x 10e45
深度学习的主力数据格式,神经网络中的权重等默认以FP32表示
FP16
FP16表示16位浮点数,通常为IEEE 754定义的半精度二进制浮点格式,由1位符号位、5位指数位和10位小数位组成
表示范围:
- 正数范围:约 6.10 x 10e-8 ~ 65504
- 负数范围:约 -65504 ~ -6.10 x 10e-8
可用于深度学习的混合精度训练,模型权重的加载使用FP32,前向和反向传播、梯度更新等使用FP16提高训练速度
BF16
一种特殊的数据存储格式,为解决FP16应用在深度学习上时动态范围太窄的问题,由Google开发的16位格式 Brain Floating Point Format
由1位符号位、8位指数位、7位小数位组成
表示范围:
- 正数范围:约 1.18 x 10e-38 ~ 3.39 x 10e38
- 负数范围:约 -3.39 x 10e38 ~ -1.18 x 10e-38
BF16保持与BF32相同的指数范围,但牺牲了一部分精度,其可在深度学习训练中减少内存和存储需求
标签:常用,机器,FP32,数据类型,10e,FP16,10e38,小数位,范围 From: https://www.cnblogs.com/Liang-ml/p/18309962