1 硬件加速
采用GPU夺颤。
GPU多機(jī)多卡痢缎。
2 框架加速
在同樣的模型,同樣的配置下世澜,采用Tensorflow 独旷,caffe,mxnet或者CNTK的速度也不一樣寥裂。具體性能可以參考這篇文章http://mp.weixin.qq.com/s/Im2JWJYGBQbOfzikFrEMsA嵌洼,相比來說caffe在多機(jī)多卡的GPU環(huán)境下,加速更明顯封恰。
3 模型選取
當(dāng)下比較經(jīng)典的深度學(xué)習(xí)網(wǎng)絡(luò)包括AlexNet麻养,GoogleNet(Inception),ResNet等诺舔。模型的層數(shù)越多鳖昌,對硬件的要求越高,受限于GPU的緩存低飒,每次mini batch的數(shù)量隨層次增多而變少许昨,訓(xùn)練時(shí)間越久,效果越差褥赊。? 最近多倫多大學(xué)新提出的RevNet解決了這個(gè)問題糕档,可以參考http://mp.weixin.qq.com/s/sLrHUr7Qgp2itx5PBFkNuA。
如果是自己搭建模型拌喉,在梯度下降的算法當(dāng)年可以考慮Adam梯度下降速那。
4 超參數(shù)
選取合適的初始值。
學(xué)習(xí)率遞減司光。
5 數(shù)據(jù)策略
數(shù)據(jù)歸一化琅坡。在梯度下降算法中,數(shù)據(jù)尺度的不統(tǒng)一残家,會(huì)導(dǎo)致小尺度維度的梯度下降緩慢榆俺,延長迭代輪數(shù)。為此,可以采用減去平均值茴晋,除以方差的方式標(biāo)準(zhǔn)化輸入陪捷。
當(dāng)樣本量足夠大時(shí),使用mini-batch代替batch诺擅。mini-batch一般選取64-512市袖,1024比較少見。最好是2的n次方烁涌,而且要和CPU/GPU相匹配苍碟。
未完待續(xù)