loss scale的理解

LossScaling是一种在FP16精度训练中解决数值稳定性问题的技术,通过放大损失并在反向传播时相应缩小梯度,防止因二进制表示误差导致的训练问题。混合精度训练(fp32+fp16)利用这种方法能加快训练速度并减少显存占用,尤其在长时间训练或资源受限的场景下。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期看代码的时候发现了loss_scale的参数,不知道为什么算loss还需要放缩,在参数说明中,当只有选择了fp16精度的选项时,loss_scale才有效。

查了资料,简单记录一下:
参考:资料

定义:
Loss Scaling
在计算loss时适当放大loss,在优化器更新参数时缩小同样倍数梯度。目前apex支持动态放缩倍数。

思想:
在交易系统中算钱的时候,规范的做法是把金额如1.01元*100之后再做计算,计算完之后再除以100,这样可以避免0.01无法用二进制精确表示造成的舍入误差。

为什么要用?
很多时候训练时间过长,或者显存不够,使用混合精度(fp32+fp16)进行训练可以加快训练速度,减少显存需求空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值