论正确初始化深度学习模型参数的重要性

遇到的问题:在一般的深度学习训练过程中,我们建立好模型以后,程序就有自动的初始化一些模型的参数,比如全连接层中每一个节点的权重等等,在之前的网络训练过程中,我总是事先设下随机种子以后,让模型自己随机初始化参数。但是这个时候就会出现一个问题:如果不加任何约束,模型的有些参数会初始化的非常大,比如某一个权重参数初始化为100,而我们的学习率一般都比较小,比如0.0001,这个时候就会发现模型收敛的非常慢,同时loss值还有可能会异常大,其实一般遇到这种情况的主要问题就是咱们的模型初始化参数设置的不是很好,没有加以约束,导致很多的参数值设置的不是很合理。

解决方法:经过前人的不断努力,目前在Pytorch中其实已经为我们写好了一些非常nice的模型参数初始化的方法,我们在定义完模型以后,只需要直接调用即可。在使用了这些合理的模型参数初始化方法后,我们就会发现我们的模型收敛速度正常了,同时loss值也正常了

一些常见的模型参数初始化方法如init.xavier_uniform_、init.kaiming_uniform_等等。具体的可以参考下面这个链接:

深度学习之参数初始化 - 知乎

你可能感兴趣的:(深度学习)