神经网络训练出来的模型输出的结果都是相同的值

作为一个pytorch的初学者,开始进行实战时,会遇到很多问题。
在进行学习时,你一定对learnig rate这个概念有很深的影响,但我在刚开始进行练习时总是忘了这个概念,直到这次在一个训练了很久的模型在验证集上的却总是输出同一个数,我不知道哪里出错了,刚开始觉得是神经网络组建的有问题,换了种常规的形式在训练了若干次之后又只输出一个定值了。我便进入了漫长的debug,发现了loss在呈周期性变化,过了一段时间,想起来lr设置过大便可能会造成这种结果,所以调小了lr,并减少了训练次数(我觉得也有过拟合的嫌疑),得到的结果就是比较满意的,泛型化较好的模型了
最近训练一个神经网络,发现各个维度的输出相同,debug后发现是loss太大了,达到了无穷数nan,所以更新时导致网络的权重更新了一个过大的值,而导致所有维度的权重近似相同;解决方法:可以线性减小输入的值,初始化网络时赋予较小的权重,也可以加batchnormal层。

你可能感兴趣的:(神经网络)