【算法】深度学习神经网络都调哪些参数?
生活随笔
收集整理的這篇文章主要介紹了
【算法】深度学习神经网络都调哪些参数?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
- 當你的模型有 Batch Normalization,初始化通常不需要操心,激活函數默認 Relu 即可(某引用數萬的大佬說的)。一般順序是 Conv - BN - Relu。如果沒有 BN(很多任務上,BN降低訓練難度,但是可能影響最終性能 ),試著要做一些數據歸一化。
- 雖然有至少十種激活函數,但初期用 Relu 或者和某個 paper 統一即可。優化器只推薦 Momentum 和 Adam。在這些方面做嘗試意義不大,如果性能提升反倒可能說明模型不成熟。不推薦做人肉模型設計,比如把某層卷積改大一點,或者微調一下通道數。除非有特別 insight,不要自己亂設計玄學組件,以吸收別人經驗為主。
- 超參上,learning rate 最重要,推薦了解 cosine learning rate,其次是 batchsize 和 weight decay。當你的模型還不錯的時候,可以試著做數據增廣和改損失函數錦上添花了。
- 不管什么模型,先在一個較小的訓練集上train和test,看看它能不能過擬合。如果不能過擬合,可能是學習率太大,或者代碼寫錯了。先調小學習率試一下,如果還不行就去檢查代碼,先看dataloader輸出的數據對不對,再看模型每一步的size是否符合自己期待。
- 看train/eval的loss曲線,正常的情況應該是train loss呈log狀一直下降最后趨于穩定,eval loss開始時一直下降到某一個epoch之后開始趨于穩定或開始上升,這時候可以用early stopping保存eval loss最低的那個模型。如果loss曲線非常不正常,很有可能是數據處理出了問題,比如label對應錯了,回去檢查代碼。
- 優化器優先用adam,學習率設1e-3或1e-4,再試Radam(LiyuanLucasLiu/RAdam)。不推薦sgdm,因為很慢。
- lrscheduler用torch.optim.lr_scheduler.CosineAnnealingLR,T_max設32或64,幾個任務上試效果都不錯。(用這個lr_scheduler加上adam系的optimizer基本就不用怎么調學習率了)
- 激活函數用relu一般就夠了,也可以試試leaky relu。
參考資料:https://www.zhihu.com/question/41631631
猜你喜歡:👇🏻
?【總結】一文了解所有的機器學習評價指標
?【總結】機器學習劃分數據集的幾種方法
?【實操】看了太多公式概念?你該學會怎么用T檢驗了!
總結
以上是生活随笔為你收集整理的【算法】深度学习神经网络都调哪些参数?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python中的颜色_Python中常见
- 下一篇: 【Python】self是干啥的?