近期看代码的时候发现了loss_scale的参数,不知道为什么算loss还需要放缩,在参数说明中,当只有选择了fp16精度的选项时,loss_scale才有效。
查了资料,简单记录一下:
参考:资料
定义:
Loss Scaling
在计算loss时适当放大loss,在优化器更新参数时缩小同样倍数梯度。目前apex支持动态放缩倍数。
思想:
在交易系统中算钱的时候,规范的做法是把金额如1.01元*100之后再做计算,计算完之后再除以100,这样可以避免0.01无法用二进制精确表示造成的舍入误差。文章来源:https://www.toymoban.com/news/detail-699435.html
为什么要用?
很多时候训练时间过长,或者显存不够,使用混合精度(fp32+fp16)进行训练可以加快训练速度,减少显存需求空间。文章来源地址https://www.toymoban.com/news/detail-699435.html
到了这里,关于loss scale的理解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!