Torch反向传播时出错或者梯度为NaN的问题排查

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Torch反向传播时出错或者梯度为NaN的问题排查相关的知识,希望对你有一定的参考价值。

参考技术A 师兄问到的backward时出现NaN和错误不好定位的问题,感觉有必要记录一下

解决方案
Automatic differentiation package - torch.autograd — PyTorch 1.9.0 documentation
使用 with torch.autograd.detect_anomaly(): 包裹传播过程检测错误

粗暴的方法,直接查看模型各节点的梯度是否计算正确

以上是关于Torch反向传播时出错或者梯度为NaN的问题排查的主要内容,如果未能解决你的问题,请参考以下文章

深扒torch.autograd原理

pytorch学习笔记第三篇———自动梯度(torch.autograd)

如何从头开始调试反向传播实现?

变量 (Variable)

模型不收敛的原因

PyTorch 线性代数梯度