Caffe训练网络时的点点滴滴

以前主要是微调网络,所以参数的设计非常简单,我们只需要注意转换数据时把参数--shuffle=true,loss收敛就不会有什么问题。但是最近我重新训练网络,发现参数调试真的是一个麻烦的事情。在这里总结一下,供大家参考。
    通过我不断的试验和大神的提点,我调节的主要是学习率。我们可能已经听说了很多,如果loss不收敛就将学习率降低。但是,这在重新训练时是个误区,尤其是在训练的开始阶段。在开始阶段我们不能把学习率设置的太低否则loss不会收敛。我的做法是逐渐尝试,从0.1,0.08,0.06,0.05 ......逐渐减小,如果学习率设置的过大,loss会直接爆炸变成87.33(原因可参考:http://blog.csdn.net/jkfdqjjy/article/details/52268565?locationNum=14)我们逐渐减小学习率,直到loss正常为止。
我们可以用第一个最大值训练网络,开始时loss下降很慢,可能要等到迭代3万次左右才有明显变化,耐心等待。当训练时发现loss不再下降,这时我们可以再降低学习率,继续训练。
影响loss收敛性的因素有很多,还没有一一尝试。dropout_ratio,batchsize等。
这里只是做个小结,以后有心得,继续添加。
补充:2016/11/27
在训练了一段时间后,我们可能要调整我们的学习率,我发现我们不能把学习率下降的“太狠”,否则会出现loss
震荡的现象,我们可以手动调节,逐次乘以0.5.
补充:2016/12/9
今天发现了一个新的问题,我们lr=0.01时loss直接爆掉了输出87.33,然后我们用lr=0.001训练了大概20000次,发现loss下降很缓慢,因此就将lr又调节成0.01,居然没有爆掉,而且loss下降很快。因此我们可以先使用小学习率训练一下,这样loss不会直接爆掉,而且我们相当于给参数一个较好的预训练值,如果loss下降缓慢甚至不降,我们可以再将loss调高点。

补充:2016/12/10

如上面提到的问题,我开始时使用lr=0.005训练了10w次,再将lr修正成0.01,loss居然震荡了。哎,lr的调节真是一个技术+运气的活呀!

补充:2016/12/13

开始时使用lr=0.01学习,迭代30万次后loss在3左右震荡,accuracy在0.62左右。然后将lr设置成0.001,accuracy立刻升到了0.75,loss也降到了2左右。

补充:2016/12/18

今天补充的不是关于学习率的调节。今天的问题是,我在微调网络而且将前面几层的lr_mult设置成0,及前面几层参数不变,只训练后面的全连接层,这种情况下我的accuracy在0.62左右,loss在0.8-2.1之间震荡,此时的lr已经是1e-5。

后来我将前面几层的lr_mult设置成默认值,及训练时调整前面几层的参数,继续训练,accuracy升高了,现在已经到了0.74.提示一点,这种情况下lr不要设置的太高,因为你的参数经过前面的训练已经很不错了,我们只需要微调即可。

补充:2016/12/21

微调网络即使用他人已经训练好的模型参数,自己准备的数据继续训练网络,使网络符合自己的数据分布。因此,微调网络分为两种情况:第一,只调整部分参数;第二,调整所有参数。根据我的测试经验,如果你没有修改过网络,建议你使用第一种方法,只调整最后几层的参数效果较好。如果你修改了网络,哪怕是网络结构没变只是层的参数变化了,建议选择第二种方法。第二种方法又可细分成两种,第一种是随着训练的进程,逐层调整,意思就是先调整最后一层,再是倒数第二层,依次向上,逐层放开调整。第二种就是开始就是所有层的参数都调整。我的建议是放弃第一种方法,直接使用第二种方法较好。

补充:2016/12/23

我原来以为dropout只能与全连接层结合使用,今天发现原来也可以和卷基层配合使用,而且防止过拟合的效果确实很好,我没有用dropout时,过拟合很严重,加入后改善很多。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值