迁移学习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,则学习曲线为:

​​​​​​​

 

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