python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Pytorch tensor判断nan与inf

Pytorch tensor判断nan与inf的实现方式

作者:普通攻击往后拉

在pytorch训练中遇到nan或inf值怎么办?本文告诉你常见原因如分母为零、softmax除法等,并教你使用tensor.isnan()和tensor.isinf()结合any()或all()方法快速定位问题,让你的模型训练更稳定

在用torch搭建深度学习模型时

很容易在数据中存在inf与nan的情况,对应的数据类型分别时torch.inf与torch.nan。

大多数情况下:

产生nan数据的原因基本上是出现了分母为0的情况,所以需要检查张量计算过程中是否有除法运算,比如softmax就有除法。

判断一个张量中是否有nan值

torch.isnan(tensor).any()

其中,

tensor.any()方法代表tensor中有一个True则全部都为True,any代表一个都不行;

与之相对tensor.all()表示tensor中全部为True才为True,all代表都行才行。

与之类似,

用tensor.isinf()方法也可以查看有没有无穷数在张量里。

torch.isinf(tensor).any()

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文