YOLOX-入门2-训练-【Reproduce our results on COCO】

部署的平台:【极链AI云平台】

YOLOX地址:
//github.com/Megvii-BaseDetection/YOLOX

复现YOLOX在COCO数据集的结果

在这里插入图片描述

数据集

在部署平台极链AI云上,有提供数据集,其中就包括coco2017,可以直接用ln语句在自己的YOLOX路径下建立软链接,使用方便。

在极链AI云提供的coco数据集中,有提示该coco数据集的路径,可以直接复制过去,替代官方给的示例中的【/path/to/your/COCO】。

在这里插入图片描述

注意

这里测试的是coco2017数据集,如果你想改其他的coco数据集,可以在/root/YOLOX/yolox/data/datasets/coco.py路径下,改这个coco.py。

他这里设置的是instances_train2017.json文件。

还有root/YOLOX/yolox/exp/yolox_base.py文件,如下图2。

我目前只注意到这两个,我没有实际运行过用coco2014的。

在这里插入图片描述在这里插入图片描述

epoch修改

在/root/YOLOX/yolox/exp/yolox_base.py文件中,可以修改epoch数。
原本设定的max_epoch是300。
我自己尝试的时候,为了更快训练完,改成了5。

在这里插入图片描述

运行

Python;toolbar:false">cd /root/YOLOX
ln -s /datasets/coco2017 ./datasets/COCO
python tools/train.py -n yolox-s -d 8 -b 64 --fp16 -o

其中,d后是GPU数量,b后是batch size,通常就是GPU数量乘8:
-d: number of gpu devices
-b: total batch size, the recommended number for -b is num-gpu * 8

一开始博主在平台上创建实例的时候,由于贫穷,GPU数量选择的是1个。

但是-d 1 -b 8,这样子的参数,去跑coco2017,大概要跑一辈子。

所以,忍痛充钱,用8GPU的跑。

8GPU的跑5epoch,用时大约43分钟。

2GPU的跑5epoch,预计用时是 2:16:55。(我就不等了,没有跑完)

关于增加GPU的数量,现在平台还不能直接升。

可以先创建自定义镜像,然后再从【数据管理】——【我的镜像】——找到刚刚自定义创建的镜像——【创建实例】——改选8个GPU数量

他的官方教程:使用过程中想要增加或减少显卡数量,更换显卡型号怎么办?

或者重新从安装开始来一次,这样可能报错更少,更顺利。

训练过程

下面这个只是某一时刻的,运行一段时间后GPU-Util比较平均。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

训练结束

训练结束,在YOLOX_outputs/yolox_s/目录下产生了新的权重文件。

将events.out.tfevents这两个文件copy到data-output路径下,再打开tensorboard,就可以查看训练结果的可视化展示。

在云平台上操作的教程:TensorBoard 使用

在这里插入图片描述在这里插入图片描述

结果对比

为了保持继续深入学习的高涨的热情,建立了一个帅哥测试数据集。

今天随手测了最近看的一个韩剧的片段。

分别用yolox_m模型,和本篇博客中只训练5个epoch的/root/YOLOX/YOLOX_outputs/yolox_s/best_ckpt.pth.tar模型,运行同一段视频。

只训练了40多分钟,5个epoch的模型,全程只能识别出person这个类别,而且当人背向镜头的时候,识别他为人的概率只有50%左右。

所以这个就不放截图了。

官方给的yolox_m模型就效果好很多。能识别出很多小物体。

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Tags: