日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > pytorch >内容正文

pytorch

深度学习之常见tricks

發布時間:2025/3/21 pytorch 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习之常见tricks 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文主要給出了在實現網絡或者調節代碼過程使用的以及平時看一些文章記錄下來的一些小技巧,主要針對卷積網絡和圖像處理。就個人感受,有些技巧還是非常有效的,而且通常可以通過看開源庫的一些文檔或者源代碼來發掘這些內容,最后能夠稱為自己所用。 1.構造validation set 一般數據集可能不會給出驗證集,所以自己會從給的訓練集中按照一定比例(9:1)分離出驗證集。 2.增加訓練數據 為了更好的訓練網絡,有時候需要增加原始數據集,一般有以下方法[1]:
  • 沿著x軸將圖片左右翻轉
  • 隨機的剪切、縮放、旋轉
  • 用pca來改變RGB的強度值,產生分別對應的特征值和特征向量,然后用均值為0方差為0.1的隨機數與特征值和特征向量相乘得到新的數據[2]
3.預處理 常見的是減均值、除方差,還有變化到-1~1,主要針對不同尺度的特征,例如房價預測的例子中,每個房子的房屋大小和臥室數量就不在一個數量級上,這種情況就需要對每一維特征進行尺度變換normalize,還有的方法是使用pca白化。但是就圖像處理領域,通常就減去一個均值就可以直接拿來計算。 4.權重初始化 不要全部初始化為0,這樣會導致大部分的deltaw都一樣,一般用高斯分布或者uniform分布。但是這樣的分布會導致輸出的方差隨著輸入單元個數而變大,因此需要除以fan in(輸入個數的平方根)。 5.卷積tricks
  • 圖片輸入是2的冪次方,例如32、64、96、224等。
  • 卷積核大小是3*3或者5*5。
  • 輸入圖片上下左右需要用0補充,即padding,且假如卷積核大小是5那么padding就是2(圖片左右上下都補充2),卷積核大小是3padding大小就是1。
5.pooling層tricks poolin層也能防止過擬合,使用overlapped pooling,即用來池化的數據有重疊,但是pooling的大小不要超過3。 max pooling比avg pooling效果會好一些。 6.避免overfitting
  • drop out能夠避免過擬[1],一般在加在全連接層后面[3],但是會導致收斂速度變慢。
  • 正則化也能避免過擬合,L2正則l2正則懲罰了峰值權重,l1正則會導致稀疏權重,趨近于0,l1會趨向選擇有用的輸入。又或者可以給給權重矢量的模加上上邊界(3 or 4),更新時對delta w進行歸一化。
7.調參 使用pretrain好的網絡參數作為初始值。然后fine-tuning,此處可以保持前面層數的參數不變,只調節后面的參數。但是finetuning要考慮的是圖片大小和跟原數據集的相關程度,如果相關性很高,那么只用取最后一層的輸出,不相關數據多就要finetuning比較多的層。 初始值設置為0.1,然后訓練到一定的階段除以2,除以5,依次減小。 加入momentum項[2],可以讓網絡更快的收斂。
  • 節點數增加,learning rate要降低
  • 層數增加,后面的層數learning rate要降低
9.激勵函數 Sigmoid作為激勵函數有飽和和梯度消失的現象,在接近輸出值0和1的地方梯度接近于0(可通過sigmoid的分布曲線觀察出)。因而可采用Rectified Linear Units(ReLUs)作為激勵函數,這樣會訓練的快一些,但是relu比較脆弱,如果某次某個點梯度下降的非常多,權重被改變的特別多,那么這個點的激勵可能永遠都是0了,還有帶參的prelu、產生隨機值的rrelu等改進版本。但是leaky版本(0換成0.01)的效果并不是很穩定。 10.通過做圖來觀察網絡訓練的情況 可以畫出隨著不同參數訓練集測試集的改變情況,觀察它們的走勢圖來分析到底什么時候的參數比較合適。
  • 不同學習率與loss的曲線圖,橫坐標是epoch,縱坐標是loss或者正確率
  • 不同的batchsize與loss的曲線圖,坐標同上
11.數據集不均衡 這種情況如果數據集跟imagenet的比較相近,可以直接用finetuning的方法,假如不相近,首先考慮重新構造數據集的每一類個數,再次可以減少數據量比較大的類(減采樣),并且復制數據量比較小的類(增采樣)。 以上是在實現卷積神經網絡中使用過的和平時看文章中提及到的一些技巧,大多數現在的開源軟件都是已經實現好了,直接調用使用即可。 參考:[1]?http://cs231n.stanford.edu/ [2]http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html [3]?http://www.cs.toronto.edu/~fritz/absps/imagenet.pdf

總結

以上是生活随笔為你收集整理的深度学习之常见tricks的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。