YOLOX踩坑记录,基于VOC数据集,本文将详细介绍训练+测试+模型评估的过程和个人遇到的所有报错
Windows10+python3.7+CUDA10.1+CUDNN7.6.5
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch
测试是否安装成功
pip install -r requirements.txt
python setup.py install
cd apex-maste
python setup.py install
pip install pycocotools
1 测试图片
python tools/demo.py image -f exps/default/yolox_s.py -c ./yolox_s.pth.tar --path assets/dog.jpg --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu
python tools/demo.py video -f exps/default/yolox_s.py -c ./yolox_s.pth.tar --path ./cut2.mkv --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu
voc数据集的制作参考我前面的博客 地址:windows10搭建PaddleDetection2.0
1 将VOCdevkit目录拷贝到datasets/VOC目录下:
ln -s D:/data/firesmoke/VOCdevkit/VOC2007/11 ./datasets/VOC
D:/data/firesmoke/VOCdevkit/VOC2007/11是VOCdevkit文件所在的路径
./datasets/VOC是要复制到的路径
2 修改 yolox/data/dataloading.py 如下:
在YOLO-main路径下执行python setup.py install 更新yolox
3 修改exps/example/yolox_voc/yolox_voc_s.py如下:
如下修改num_classes改为自己的类别数量
4 修改yolox/data/datasets/voc_classes.py为自己的类别
执行python setup.py install 更新yolox
5 修改yolox/evaluators/voc_eval.py 如下
在18行filename前加上Annotations文件夹的路径
执行python setup.py install 更新yolox
6 运行如下代码开始训练
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 4 --fp16 -o -c yolox_s.pth.tar
-d 使用显卡个数
-b 批次大小
–fp16 是否开启半精度训练
-c 加载预训练模型
如果出现CUDA out of memory内存溢出,将–fp16 -o去掉,代码改为如下
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 4 -c yolox_s.pth.tar
7 继续上一批次恢复训练的话,改成如下形式
将—resume改为True,-c后面跟接要继续训练的权重文件
代码如下:
python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 4 -c YOLOX_outputs/yolox_voc_s/latest_ckpt.pth.tar
1 测试前修改demo.py如下
2 修改demo.py 85行左右的cls_name为VOC_CLASSES,还有265行左右的第三个参数
3 测试
python tools/demo.py video -f exps/example/yolox_voc/yolox_voc_s.py -c YOLOX_outputs/yolox_voc_s/latest_ckpt.pth.tar --path ./bb2.mp4 --conf 0.3 --nms 0.65 --tsize 640 --save_result --device gpu
1 输入如下代码进行模型评估
python tools/eval.py -f exps/example/yolox_voc/yolox_voc_s.py -c YOLOX_outputs/yolox_voc_s/latest_ckpt.pth.tar -d 1 -b 4 --conf 0.001 --fp16 --fuse
--fuse 融合Conv层与BN层(减少运算量,加速推理的一个东西)
解决方案:
修改50行 加上encoding=”utf-8”
解决方案:
将以上代码修改成如下,记得一定要cd到apex-master文件夹内执行
python setup.py install
解决方案:
这该死的报错耗了我大半个小时
解决方案:
将
改为
将–path 视频绝对路径改为相对路径!!!!!!!!!!!
解决方案:
参考 4、测试 的1,2步 运行python setup.py install更新yolox
解决方案:
在tools\demo.py中把VOC_CLASSES 换回 COCO_CLASSES,修改85,256行左右的代码~
解决方案:
将train文件中44行左右—resume 改成False
代码跑通了,开心