我是通过打断点判断出来的。
(1)利用torch.any(torch.isnan(input))判断自己所有的输入是否有问题(我发现我的输入tensor中有一维的特征有nan,是因为最大最小值归一化的时候,max和min是同一个数,造成除数为0,结果产生了nan,LSTM、GRU学出来的全是nan)
(2)输出网络中每一层的输出,看看nan是哪里产生的(我是在输入和LSTM/GRU单元部分产生的)
(3)找到nan的原因,解决掉nan
我是通过打断点判断出来的。
(1)利用torch.any(torch.isnan(input))判断自己所有的输入是否有问题(我发现我的输入tensor中有一维的特征有nan,是因为最大最小值归一化的时候,max和min是同一个数,造成除数为0,结果产生了nan,LSTM、GRU学出来的全是nan)
(2)输出网络中每一层的输出,看看nan是哪里产生的(我是在输入和LSTM/GRU单元部分产生的)
(3)找到nan的原因,解决掉nan