机器学习中为什么要用混合精度训练
目录
- FP16与显存占用关系
- 机器学习中一般使用混合精度训练:FP16计算 + FP32存储关键变量。
FP16与显存占用关系
显存(Video RAM,简称 VRAM)是显卡(GPU)专用的内存。
FP32(单精度浮点):传统深度学习默认使用32位浮点数
每个参数占用`4字节`例如:1亿参数的模型 → 约400MB显存
FP16(半精度浮点):
每个参数占用`2字节`(直接减半)相同模型 → 约200MB显存
双精度浮点(FP64)占 8字节
。
EEE 754标准:FP64遵循该国际标准,用 64位(8字节) 存储一个浮点数
机器学习中一般使用混合精度训练:FP16计算 + FP32存储关键变量。
混合精度方案的解决方式:
关键部分保留FP32:模型权重在优化时会保留FP32副本(主权重)损失计算使用FP32非关键部分使用FP16:前向传播的中间激活值反向传播的梯度