遷移學習darknet模型,epoch學習率應該怎麼設置

目錄

第一訓練平安標註數據分析:

如何設置epoch和學習率


關於maxbatches與學習率的關係,參看:darknet分類,遷移學習,還沒有達到預期,學習率降爲0了,怎麼破?

關於cfg文件參數說明,參看:Darknet模型中cfg文件理解與說明

第一訓練平安標註數據分析:

第一訓練模型參數:

batch= 16
subdivisions= 4
learning_rate=0.01
policy=poly
power=4
max_batches=250000

學習曲線:

訓練時間:2020年6月23日 16:00-2020年6月24日 10:00

訓練結果:

顯然,損失沒有下降,計算此時訓練epoch=(191400-152000)*16/29416=21次

其中:29416是本次訓練圖片張數,16是參數batch的值,每16張進行一次反向傳播。

如何設置epoch和學習率

設置的epotch100的時候結果還可以接受,當設置過大的時候結果反而變差了。

爲了防止快速陷入局部最優,最常用的方法就是使用較小的學習速率,也就是降低learning rate。learning rate小了,爲了將數據學充分,自然就要增加學習次數。也就是增加epoch.

batch一般用128,epoch是一般把數據集遍歷幾遍,大部分用10個epoch,剩下你就知道了

yolo v1的論文中,作者設置epoch爲130,學習速率也是根據epoch變化而變化的

如果設置epoch=128,那麼需要迭代的次數爲:29416*128/16=235328

其中16是batch的值,每次迭代訓練的圖片張數,128=epoch,29416是訓練的圖片總數

所以maxbatches=152000+235328=387328

這裏把maxbatches設置爲400000

batch= 16
subdivisions= 4
learning_rate=0.01
policy=poly
power=4
max_batches=400000

學習率變化曲線:

若學習率爲0.02,則學習曲線爲:

​​​​​​​

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章