torch梯度消失解决方法

问题

在运行深度学习代码进行调整后常常发现在运行一定情况下Loss会出现Nan。

总结本人常见的Loss出现nan的原因:

(1) 学习率过大问题, 曾经尝试调整学习率lr,确实有解决过;

(2) 查看计算各个公式中是否出现除以0, 或者log(0)的现象。这种一般出现在反向传播中梯度突然消失,采用torch.clamp解决

函数

代码如下

torch.clamp(input, min, max) → Tensor

参数

        input: Tensor

        min: Number or Tensor

        max: Number or Tensor

        -> 返回值: Tensor

该函数用于限制tensor的值大小,一般采用min= 1e-8 或者 1e-10 将tensor内的值设定一个最小值

y = torch.clamp(x, min=1e-8)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值