torch.nn.utils.clip_grad_norm_

梯度裁剪

  • 梯度裁剪
    既然在BP过程中,会产生梯度消失,(即偏导无限接近0,导致长时记忆无法更新),那么最简单粗暴的方法,设定阈值,当梯度小于阈值时,更新的梯度为阈值(梯度裁剪解决的是梯度消失或梯度爆炸问题,即设定阈值),如下图所示:
    在这里插入图片描述

解决梯度爆炸问题的方法

在这里插入图片描述

torch.nn.utils.clip_grad_norm_(parameters, max_norm, norm_type=2)

函数定义:裁剪可迭代参数的渐变范数,范数在所有梯度一起计算的,就好像它们被链接成单个矢量一样,渐变是就地修改的。

原理:对网络所有参数求范数,和最大梯度阈值相比,如果clip_coef <1时,范数大于阈值,则所有梯度值乘以系数。

参数列表

  • parameters(Iterable[Tensor]或Tensor)——一个由张量或单个张量**组成的可迭代对象(**模型参数),将梯度归一化、
  • max_norm:(float or int)——梯度的最大范数
  • norm_type:(float or int)——所使用的范数类型

clip_coef的公式为:

在这里插入图片描述

总结

慢慢的会自己在建模过程中,将梯度裁剪使用好,会自己详细使用好梯度裁剪,以及梯度裁剪的过程,会自己将其弄透彻。研究彻底。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

big_matster

您的鼓励,是给予我最大的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值