深度学习调参心得第二弹!

文章来源 | 极链AI云(性价比最高的共享算力平台,助力你的技术成长~首次注册可获免费100小时GPU使用时长!官网地址:https://cloud.videojj.com/

作者 | Chaser【极链AI云技术原创奖励计划】千元云币券获得者

原文地址 | 调参心得第二弹 ( 官网论坛)已获授权

继上次更新调参心得后收到比较多的关注,最近又做了不少对比实验和验证性实验,发现真正落实到和sota对比的时候,以及自己的Ablation如何进行的时候,高效的实验方案真的很重要!然后就是调参技巧,以前不觉得,现在来看十分十分重要,简单记一下最近的调参笔记和可以借鉴注意的地方:

优化器选择

上次已经说过了,这次在啰嗦一下相关细节。如果你机器设备不足(如果是大实验,相对8卡Tesla V100,或者至少四路2080Ti吧),或者是前期验证性实验,一定要用Adam,收敛真的很快,效果非常好,试错成本很低。如果SGD,你想让他收敛先得找半天合适的lr,而且还要跑很多轮,成本大大提升。

当然,最近ICLR,ICML偶尔有文章批评adam容易陷入局部极小,这种话听听就行。一是应用场合吧,二是真的有点吹毛求疵,虽然人家说的也不错,如果是COCO等大数据集冲击SOTA而且条件允许你也可以sgd,感觉性价比不高。

再谈学习率

一般都是step递减0.1,当然还能加上warmup等trick,但是关于这个step,尽可能适当拉开。一般0.6, 0.8比较合适,如果你觉得0.01递减优化不动,可以0.7, 0.9step递减。我一直参照的yolov5那哥们设置的0.8,0.9,发现总是收敛不好。有两种解决方案,一是上面说的,让小学习率的多学几个epoch,二是设置更大的epoch。

关于epoch

我之前用的舰船数据,100epoch就能很高了,一直疑惑为什么更大的input size不能提高,原来真的是优化不够,设置越大的epoch确实work,但是注意过拟合的问题,以及step递减的参数设置。毕竟有前人用极小的lr跑一个暑假就sota的先例。。。。(不值得模仿

tricks

很长一段时间我的multi-scale不work,以为是我模型已经学得很好了,适应了尺度多变性。其实是上述参数的调试问题。目前经验来看,基本你加了augment,或者ms,一般都会有提升的,而且不太小,如果不work很可能是你的训练有问题。(当然,不排除augment中部分操作针对具体数据集的不适应性,如rotate对MNIST的不安全性,不过,这可能性比较小吧)

想要认识更多深度学习小伙伴,交流更多技术问题,欢迎关注公众号“极链AI云”(为你提供性价比最高的共享算力平台,官网地址:https://cloud.videojj.com/

猜你喜欢

转载自blog.csdn.net/weixin_47716911/article/details/108076257