- 实训周的了解与参与
这个八月份,在朋友的介绍下有幸参加了极市平台的视觉算法实训周活动,该活动就是在规定时间内完成算法的开发搭建,并参与项目打榜最终完成封装。
参加这个实训周,一方面是冲着实训周丰厚的奖金,想着赚点零花钱给自己花;另一方面是奔着学习视觉方面的东西去的,因为自己未来想从事的方向也是这个方向,想在这次的实训周中学习到相关知识,并锻炼自己的算法能力。
二.实训周流程
因为第一次参加类似的活动,也没有相关算法经验,在加入实训周咨询群之后,真的是很懵逼,就按着群公告的新手文档一步一步来,平台的新手文档做的是很详细的,对新手十分友好,新手文档的东西大概过了一遍,没有多仔细的看,因为觉得实操才能记住东西(下面是新手文档的部分截图)。
接着就是实操环节了,在新手文档中也有基于yolov5的新手任务教程,同时b站还有实操的视频教程,我是两者结合一起做新手任务的,在新手任务的完成过程中也算坎坷,但好在最终各种查资料各种看细节以及问咨询群里的老师,最终也顺利完成了
最后便是激动人心的打榜环节了,在打榜的时候也是各种坎坷,但最后都拿到了不错的打榜分数,并在封装环节中通过SDK自动测试,整个实训周环节完成的也算圆满。
- 实训周遇到的问题及解决方法
整个实训周的完成过程也算是比较坎坷的,下面就列举我的部分情况,希望能帮到其他人避开这些误区。
1.当时在复制split_train_val这个文件名字的时候多复制了一个空格,导致说报错找不到这个文件名。但是因为一个空格看不出什么,一直在找原因,找了一个多小时才发现错误的地方,也算是当了大冤种了。
有空格
现在我还看不出有没有空格,但如果报错说找不到这个文件名的话要看下是不是这个错误。
2.在运行程序后强行中止,杀死进程后可能依然会存在显存不释放的情况,导致下次训练时会报显存不足的错误。
查看显存
杀死进程
再次查看显存
我发现显存并没有全部释放,网上查了很多方法都没用,这貌似是Ubuntu的一个bug,最终我只好重启这个实例,再次查看显存时显存就已经被清空了。
3.文件下载的问题
在编码环境中下载yolov5的压缩包时,会出现卡住的现象,原因貌似是关于不能翻墙的一些东西,导致下载被限制,这个时候就需要在自己的电脑上去网上下载相关的压缩包和文件,然后导入到相关的目录中。
上面是我在编码环境种无法下载,在自己电脑上下载然后导入到平台中的文件,而要导入到编码环境也是很简单,只需要复制地址并使用wget命令即可,如图
安装成功
- 思路和策略
要想在最终模型训练效果好的话,好的策略是必须的,我是模型的训练上,是先自己查阅了部分资料并借鉴了冠军分享方案里面的方法。
- Batch_size的大小
Batch_size的大小通过资料的查阅之后,一般是取2的n次方,如32,64,这样取的训练速度和训练效果会比较好,我也尝试过取48,56,72这样的大小,但是训练效果并不好。
在实例编码环境中,显存只有8G,我调试batch_size的大小测试训练速度,同时在编码环境中batch_size不能取64,否则会无法分配内存,所以我一般在编码环境只取到32,训练速度较快,效果也相对也比较好。
而在训练环境中,显存扩增到了12G,batch_size可以取到64但已经取到128,否则显存不够,在参数多次调解后也发现取到64的训练效果是最好的,所以在实例的打榜中我一般都会取64。
- yolov模型的选择
在新手任务实践中取的yolov5s模型,该模型在综合性能上是最好的.我也尝试过yolov5l和yolov5x等其他模型,但最终发现还是yolov5s的效果较好
- 采用冠军分享方案
我是参考了反光衣识别的冠军方案,链接如下
【极市打榜】反光衣识别算法冠军方案(附源码)-极市开发者社区 (cvmart.net)
在这里不做过多介绍,方案里面讲的比较清楚了,在训练12个小时后,在冻结参数上我是采取了跟她相同的策略,而在数据增强方式中mosaic参数的调节中,我是根据实例的数据量大小和他的数据量大小进行对比然后来调节的,调节完代码之后再次发起训练,测试完发现模型的效果得到了有效的提升。
- 收获与总结
参加极市视觉算法实训周之后,对于我在yolov5算法的使用和改进方面均有了很大的提升,同时对于Linux的命令的Bug的解决上,也有了更多的经验。但在与很多平台上的大佬比起来,自己的算法能力还有待提高,那就继续加油吧!