c 網(wǎng)站開發(fā)框架百度小說風(fēng)云榜今天
遇到的問題:在一般的深度學(xué)習(xí)訓(xùn)練過程中,我們建立好模型以后,程序就有自動的初始化一些模型的參數(shù),比如全連接層中每一個(gè)節(jié)點(diǎn)的權(quán)重等等,在之前的網(wǎng)絡(luò)訓(xùn)練過程中,我總是事先設(shè)下隨機(jī)種子以后,讓模型自己隨機(jī)初始化參數(shù)。但是這個(gè)時(shí)候就會出現(xiàn)一個(gè)問題:如果不加任何約束,模型的有些參數(shù)會初始化的非常大,比如某一個(gè)權(quán)重參數(shù)初始化為100,而我們的學(xué)習(xí)率一般都比較小,比如0.0001,這個(gè)時(shí)候就會發(fā)現(xiàn)模型收斂的非常慢,同時(shí)loss值還有可能會異常大,其實(shí)一般遇到這種情況的主要問題就是咱們的模型初始化參數(shù)設(shè)置的不是很好,沒有加以約束,導(dǎo)致很多的參數(shù)值設(shè)置的不是很合理。
解決方法:經(jīng)過前人的不斷努力,目前在Pytorch中其實(shí)已經(jīng)為我們寫好了一些非常nice的模型參數(shù)初始化的方法,我們在定義完模型以后,只需要直接調(diào)用即可。在使用了這些合理的模型參數(shù)初始化方法后,我們就會發(fā)現(xiàn)我們的模型收斂速度正常了,同時(shí)loss值也正常了。
一些常見的模型參數(shù)初始化方法如init.xavier_uniform_、init.kaiming_uniform_等等。具體的可以參考下面這個(gè)鏈接:
深度學(xué)習(xí)之參數(shù)初始化 - 知乎