因为课题的需要,我也训练过几个自己的模型,并对yolov3和faster rcnn做了一些改进。抱着学习的态度记录一下模型训练过程中调参的一些经验。。。怕的就是以后忘记还要翻来覆去的找资源。。。。
1、要想训练自己的模型,首先找一个能跑通的的其他任务的架子,在它的基础上修改。
2、先准备一个小的数据集试试水,看模型能不能过拟合。如果不能过拟合,可能是学习率设置太大;调小学习率仍不能过拟合那就要检查代码了。
3、尽量使用预训练权重,能起到事半功倍的效果。如果更改了模型的结构,那么可以先用较大的学习率自己训练一个粗略的权重,把这个权重当作预训练权重。然后,设置一个小的学习率进行精细化训练。
4、学习率衰减是个很好的技巧。Keras中可以设置n个周期loss值不下降就改变学习率,也可以设置不同的衰减方法。
5、激活函数一般用relu就够用了,也可以试试Leaky relu,对比一下效果
6、防止过拟合在模型训练中至关重要:
(1)