因为学习速率过大,梯度值过大,产生梯度爆炸试了很多学习率之后看到损失函数大到上天了,但是为什么后面出现了NaN,我有两个猜想:
1,损失函数算出来的结果太大了,不显示inf无限大,而是NaN.
每个步骤的数据都打印出来,因为这个数据集有331个特征,太多了,我抽了3个特征出来看,还是出现了NaN,不过我也在演算的过程中找到了原因:
w不小心就越来越小直到负无穷了,再和X相乘,就出现了NaN数据没有正则化同样的学习率,没有正则化更容易出现Nan.
最后一个很蠢的原因因为w和b没有重置,沿用了前面的NaN,只改动学习率对结果没有影响.