import torch
有的时候写代码会遇到nan的情况,遇到这种情况你肯定要去解决的,说明你代码有问题。如果你不解决,大概率由于模型前向传播+训练导致模型中所有tensor都是nan,甚至中途就报错了。
nan的原因有非常之多,这里就不介绍了,大家可以看看模型的权值以及loss或者中间变量变成了nan怎么回事。
我们首要是对一些你认为关键的tensor变量进行检测是否为nan,然后停下来,进一步分析nan的原因。那么如何检测呢?
assert not torch.any(torch.isnan(tensor))