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

歡迎訪問 生活随笔!

生活随笔

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

pytorch

【深度学习】21个深度学习调参技巧,一定要看到最后一个

發布時間:2025/3/8 pytorch 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【深度学习】21个深度学习调参技巧,一定要看到最后一个 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“AI算法與圖像處理”,選擇加"星標"或“置頂”

重磅干貨,第一時間送達

這篇文章在國外知名的網站?medium?上面獲得了一千多的贊,給出了很多建議,同時也備注了論文的來源,所以這么優質的文章,大家一定要多多宣傳哈

訓練深度神經網絡是困難的。它需要知識和經驗,以適當的訓練和獲得一個最優模型。在這篇文章中,我想分享我在訓練深度神經網絡時學到的東西。以下提示和技巧可能對你的研究有益,并可以幫助你加速網絡架構或參數搜索。

現在,讓我們開始吧……

整理自:https://towardsdatascience.com/a-bunch-of-tips-and-tricks-for-training-deep-neural-networks-3ca24c31ddc8

1

在你開始建立你的網絡體系結構,你需要做的第一件事是驗證輸入到網絡的數據,確保輸入(x)對應于一個標簽(y)。在預測的情況下,確保真實標簽(y)正確編碼標簽索引(或者one-hot-encoding)。否則,訓練就不起作用。

2

決定是選擇使用預模型還是從頭開始訓練你的網絡?

  • 如果問題域中的數據集類似于ImageNet數據集,則對該數據集使用預訓練模型。使用最廣泛的預訓練模型有VGG net、ResNet、DenseNet或Xception等。有許多層架構,例如,VGG(19和16層),ResNet(152, 101, 50層或更少),DenseNet(201, 169和121層)。注意:不要嘗試通過使用更多的層網來搜索超參數(例如VGG-19, ResNet-152或densen -201層網絡,因為它在計算量很大),而是使用較少的層網(例如VGG-16, ResNet-50或densen -121層)。選擇一個預先訓練過的模型,你認為它可以用你的超參數提供最好的性能(比如ResNet-50層)。在你獲得最佳超參數后,只需選擇相同但更多的層網(如ResNet-101或ResNet-152層),以提高準確性。

    ImageNet:http://www.image-net.org/challenges/LSVRC/2012/

    VGG net :https://arxiv.org/abs/1409.1556

    ResNet:https://arxiv.org/abs/1512.03385

    DenseNet:https://arxiv.org/abs/1608.06993

    Xception :https://arxiv.org/abs/1610.02357

  • 微調幾層,或者如果你有一個小的數據集,只訓練分類器,你也可以嘗試在你要微調的卷積層之后插入Dropout層,因為它可以幫助對抗網絡中的過擬合。

    Dropout:http://jmlr.org/papers/v15/srivastava14a.html

  • 如果你的數據集與ImageNet數據集不相似,你可以考慮從頭構建并訓練你的網絡。

3

在你的網絡中始終使用歸一化層(normalization layers)。如果你使用較大的批處理大小(比如10個或更多)來訓練網絡,請使用批標準化層(BatchNormalization)。否則,如果你使用較小的批大小(比如1)進行訓練,則使用InstanceNormalization層。請注意,大部分作者發現,如果增加批處理大小,那么批處理規范化會提高性能,而當批處理大小較小時,則會降低性能。但是,如果使用較小的批處理大小,InstanceNormalization會略微提高性能。或者你也可以嘗試組規范化(GroupNormalization)。

BatchNormalization:https://arxiv.org/abs/1502.03167

InstanceNormalization:https://arxiv.org/abs/1607.08022

GroupNormalization:https://arxiv.org/abs/1803.08494

4

如果你有兩個或更多的卷積層(比如Li)對相同的輸入(比如F)進行操作(參考下面的示意圖理解),那么在特征連接后使用SpatialDropout。由于這些卷積層是在相同的輸入上操作的,因此輸出特征很可能是相關的。因此,SpatialDropout刪除了那些相關的特征,并防止網絡中的過擬合。

注意:?它主要用于較低的層而不是較高的層。

SpatialDropout:https://arxiv.org/abs/1411.4280

5

為了確定你的網絡容量,嘗試用一小部分訓練例子來超載你的網絡(andrej karpathy的提示)。如果它沒有超載,增加你的網絡容量。在過擬合后,使用正則化技巧如L1、L2、Dropout或其他技術來對抗過擬合。

L1:https://keras.io/regularizers/

L2:https://keras.io/regularizers/

Dropout:http://jmlr.org/papers/v15/srivastava14a.html

6

另一種正則化技術是約束或限制你的網絡權值。這也有助于防止網絡中的梯度爆炸問題,因為權值總是有界的。與L2正則化相反,在你的損失函數中懲罰高權重,這個約束直接正則化你的權重。你可以在Keras中輕松設置權重約束:

from keras.constraints import max_norm # add to Dense layers model.add(Dense(64, kernel_constraint=max_norm(2.))) # or add to Conv layers model.add(Conv2D(64, kernel_constraint=max_norm(2.)))

7

對數據進行均值減法有時會產生非常糟糕的效果,特別是對灰度圖像進行減法(我個人在前景分割領域就遇到過這個問題)。

8

在訓練前和訓練期間,確保打亂訓練數據,以防你不能從時序數據中獲取有用信息。這可能有助于提高您的網絡性能。

9

如果你的問題域與稠密預測(dense prediction)相關(如語義分割),我建議你使用膨脹殘差網絡作為預訓練模型,因為它最適合稠密預測。

Dilated Residual Networks:https://arxiv.org/abs/1705.09914

10

要捕獲對象周圍的上下文信息,可以使用多尺度特性的池化模塊。該思想成功地應用于語義分割或前景分割中。

semantic segmentation:https://arxiv.org/abs/1802.02611

foreground segmentation:https://arxiv.org/abs/1808.01477

11

Opt-out void labels(或模糊區域)從您的損失或精度計算,如果有。這可以幫助你的網絡在預測時更有信心。

12

如果你有高度不平衡的數據問題,在訓練期間應用類別加權操作。換句話說,給稀少的類更多的權重,但給主要類更少的權重。使用sklearn可以很容易地計算類權重。或者嘗試使用過采樣和欠采樣技術重新采樣你的訓練集。這也可以幫助提高預測的準確性。

sklearn:http://scikit-learn.org/stable/modules/generated/sklearn.utils.class_weight.compute_class_weight.html

OverSampling and UnderSampling techniques:https://en.wikipedia.org/wiki/Oversampling_and_undersampling_in_data_analysis

13

選擇一個正確的優化器。有許多流行的自適應優化器,如Adam, Adagrad, Adadelta,或RMSprop等。SGD+動量被廣泛應用于各種問題領域。有兩件事需要考慮:

第一,如果你關心快速收斂,使用自適應優化器,如Adam,但它可能會陷入局部極小,提供了糟糕的泛化(下圖)。

第二,SGD+momentum可以實現找到全局最小值,但它依賴于魯棒初始化,而且可能比其他自適應優化器需要更長的時間來收斂(下圖)。我建議你使用SGD+動量,因為它能達到更好的最佳效果。

14

有三個學習率起點(即1e- 1,1e -3和1e-6)。如果您對預訓練模型進行微調,請考慮小于1e-3(比如1e-4)的低學習率。如果您從頭開始訓練您的網絡,請考慮一個大于或等于1e-3的學習率。您可以嘗試這些起點,并調整它們,看看哪個是最好的,選擇那個。還有一件事,您可以考慮通過使用 Learning Rate Schedulers來降低訓練過程中的學習率。這也可以幫助提高網絡性能。

Learning Rate Schedulers:https://keras.io/callbacks/#learningratescheduler

15

除了Learning Rate Schedule 外,即在一定的次數后降低學習率,還有另一種方式,我們可以由一些因素減少學習率,如果驗證損loss在某些epoch(比如5)停止改善,減小學習率和如果驗證損失停止改善在某些epoch(比如10),停止訓練過程。這可以通過在Keras中使用early stop的ReduceLROnPlateau很容易做到。

ReduceLROnPlateau:https://keras.io/callbacks/#reducelronplateau

EarlyStopping:https://keras.io/callbacks/#earlystopping

16

如果您在dense prediction領域工作,如前景分割或語義分割,您應該使用跳過連接,因為對象邊界或有用的信息會由于最大池化操作或strided convolutions而丟失。這也可以幫助您的網絡輕松地學習特征空間到圖像空間的特征映射,有助于緩解網絡中的消失梯度問題。

skip connections:https://arxiv.org/abs/1505.04597

17

數據越多越好!總是使用數據增強,如水平翻轉,旋轉,縮放裁剪等。這可以幫助大幅度提高精確度。

18

你必須要有一個高速的GPU來進行訓練,但是這有點昂貴。如果你想使用免費的云GPU,我推薦使用谷歌Colab。如果你不知道從哪里開始,看看我之前的文章或者嘗試各種云GPU平臺,如Floydhub或Paperspace等。

Google Colab:https://colab.research.google.com/notebooks/welcome.ipynb#recent=true

使用教程:https://towardsdatascience.com/a-comprehensive-guide-on-how-to-fine-tune-deep-neural-networks-using-keras-on-google-colab-free-daaaa0aced8f

Floydhub:https://www.floydhub.com

Paperspace:https://www.paperspace.com

19

在ReLU之前使用最大池化來節省一些計算。由于ReLU閾值的值為0:f(x)=max(0,x)和最大池化只有max激活:f(x)=max(x1,x2,…,xi),使用Conv > MaxPool > ReLU 而不是Conv > ReLU > MaxPool。

例如,假設我們有兩個從Conv來的激活值(即0.5和-0.5):

  • 因此MaxPool > ReLU = max(0, max(0.5,-0.5)) = 0.5

  • 和ReLU > MaxPool = max(max(0,0.5), max(0,-0.5)) = 0.5

看到了嗎?這兩個操作的輸出仍然是0.5。在這種情況下,使用MaxPool > ReLU可以節省一個max 操作。

20

考慮采用深度可分離卷積運算,與常規的卷積運算相比,該運算速度快,且參數數量大大減少。

Depthwise Separable Convolution:https://arxiv.org/abs/1610.02357

21?

最后但并非最不重要的是不要放棄????。相信自己,你能做到!如果你還沒有得到你還找精度高,調整你的hyper-parameters,網絡體系結構或訓練數據,直到你得到你正在尋找的準確性。

往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯

獲取一折本站知識星球優惠券,復制鏈接直接打開:

https://t.zsxq.com/y7uvZF6

本站qq群704220115。

加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【深度学习】21个深度学习调参技巧,一定要看到最后一个的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 四虎影视免费观看 | 2021国产在线视频 | 精品一区二区三区在线观看视频 | 国产黄色大片视频 | 美女被叉叉的影院 | 无码人妻精品一区二区三区在线 | 国产又黄又猛又粗又爽 | 暖暖成人免费视频 | 手机看黄色 | 日韩成人影视 | 日本护士╳╳╳hd少妇 | 九色蝌蚪9l视频蝌蚪9l视频 | 99cao| 日韩一区二区免费播放 | 爱爱中文字幕 | 打屁股疼的撕心裂肺的视频 | 黄色字幕网 | 国产影视一区二区三区 | 丝袜人妻一区二区 | 亚洲一区不卡在线 | 欧美成人黑人猛交 | 国产精品系列在线播放 | 欧美少妇15p | 嫩草影院久久 | 乱图区 | av三级网| 国产做爰全免费的视频软件 | 亚洲天堂av网站 | 国产精品一区一区三区 | 人妖被c到高潮欧美gay | 色导航在线 | 国产大片一区 | 91tv在线| 欧美午夜剧场 | 毛片基地在线播放 | 专业操老外 | 国产伦精品一区二区三区妓女下载 | 免费在线性爱视频 | 成人夜夜 | 国产图片一区 | 国产精品男人的天堂 | 久久久久久久综合色一本 | 无码免费一区二区三区免费播放 | 黄网视频在线观看 | 亚洲裸体网站 | av在线播放免费 | 午夜精彩视频 | 在线视频h | 国产美女久久久 | 午夜影院在线观看 | 亚洲欧洲在线视频 | 天天做夜夜爽 | 天堂一区| av黄色小说 | 国产一区二区三区久久 | 国产精品一页 | 国产精品久久久久久久久久久久午夜片 | 久久精品天堂 | 国产精品视频成人 | 久久久精品小视频 | 国产高清不卡视频 | 欧美色图在线播放 | 国产色网址 | 亚洲精品自拍偷拍 | 国产911| 日本一区二区三区免费视频 | 亚洲欧美中文字幕 | 国产精品vip | 中文一区在线 | 久久久6 | aa片在线观看视频在线播放 | 欧美中文字幕一区二区三区 | 色羞羞| 日韩精品久久久久久久的张开腿让 | 日本一区二区三区视频在线观看 | 亚洲小说区图片区 | 中文字幕欧美另类精品亚洲 | 美女张开腿流出白浆 | 毛片网站在线看 | 国产黄色片免费观看 | 久久爱99 | julia一区二区三区在线观看 | 69午夜 | 在线观看av资源 | 日韩中文av| 午夜免费剧场 | 蜜桃视频在线入口www | 免费av网址在线观看 | 欧美性生交xxxxx久久久缅北 | 亚洲国产无线乱码在线观看 | 国产原创一区 | 国产乱码精品一区二区三区不卡 | 黄色国产在线播放 | 国内精品卡一卡二卡三 | 欧美国产一二三区 | 一区二区三区精品视频在线观看 | 日韩成人精品视频 | 精品国产黄色片 | 久久久久午夜 |