nan踩坑记


1、检查数据
如果输入的是图片数据,先检查是否有 打不开的图片/大小明显异常的图片;
检查输入模型的数据是否与所使用的loss函数提供接口中的要求相一致。

2、检查所有除式中的分母
特别是在自己实现的归一化函数中,尤其需要注意。

3、检查是否有进行log_softmax。

4、检查是否有使用正确的激活函数。

5、如果在PyTorch中使用CTC损失函数,可以尝试将log_softmax的输出转换为torch.float64类型。可参见
https://discuss.pytorch.org/t/ctcloss-performance-of-pytorch-1-0-0/27524/59

6、在PyTorch中可以使用如下代码来检查是否出现nan,并定位可能出现错误的输入的位置
with torch.autograd.detect_anomaly():
loss.backward()


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM