Yolo x 训练起来,详细的不行,且内含800错误解决办法

我已经自认为掌握了yolo v5,以为可以跟配环境啥的说再见,现实很残酷哈哈哈,要把之前用的yolo v5换掉换成yolo x ,没想到啊没想到,可以用世事无常来形容了,于是一届菜鸡又开始搞yolo x 。在此十分感谢大佬给予巨大帮助!

win10+pytorch1.9+yolox模型训练_Mr曲末寒的博客-CSDN博客

YOLOX训练自己的VOC数据集_RooKiChen的博客-CSDN博客_yolox训练voc数据集

1.准备环境

官方代码:https://github.com/Megvii-BaseDetection/YOLOX

#我直接复制了一个yolov5的环境,改名成yolo x
#激活环境
conda activate yolox
#进入你下载文件的位置
D:
#进入文件夹
cd D:\DATA\xxx\YOLOX-main
#下载需要的包,这个语句我没下下来,总是timeout,放弃了,一个一个下
pip install -r requirements.txt
#加个清华源挨个下
pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install ninja -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install tabulate -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnx==1.8.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnxruntime==1.8.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install onnx-simplifier==0.3.5 -i https://pypi.tuna.tsinghua.edu.cn/simple

2.搞自己的数据集

先建立文件夹,datasets文件下建立VOCdevkit文件夹, VOCdevkit文件夹下建立VOC2007文件夹,VOC2007文件夹下建立Annotations,ImageSets,JPEGImages三个文件夹加一个名为make_voc_data的py文件。ImageSets文件夹下建立main文件夹。

完事之后,在make_voc_data.py文件中,运行此代码后会出现两个.txt文件。

import os
import random

trainval_percent = 0.3
train_percent = 0.7
xmlfilepath = r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\Annotations'  # 自己标签文件地址
txtsavepath = r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\ImageSets'     
total_xml = os.listdir(xmlfilepath)

num = len(total_xml)
list = range(num)
tv = int(num * trainval_percent)
tr = int(tv * train_percent)
trainval = random.sample(list, tv)
train = random.sample(trainval, tr)

ftest = open(r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\ImageSets\Main\test.txt', 'w')  # 生成两个文件保存地址
ftrain = open(r'D:\DATA\xxx\YOLOX-main\datasets\VOCdevkit\VOC2007\ImageSets\Main\trainval.txt', 'w')

for i in list:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        ftest.write(name)
    else:
        ftrain.write(name)

ftrain.close()
ftest.close()

3.训练

3.1改exps/example/yolox_voc/yolox_voc_s.py

有几个类别就改几个,我只有一个

 3.2改yolox/data/datasets/voc_classes.py为自己的类别

就一个fish,按照源代码给的那个形式,改的类别,他报错了,就变成了图中的写法,现在想起来还是十分感谢文章开头的博主哈哈哈,对我这种真是啥也不会的人给予帮助!

 3.3运行

找到Terminal,如下图,输入下面这个,报错了就改。

python tools/train.py -f exps/example/yolox_voc/yolox_voc_s.py -d 1 -b 1 -c weights/yolox_s.pth

 运行一下!

3.4改错

错误1:No module named 'yolox'

改正:最开始train.py中加上import sys,sys.path..append(当前项目的绝对路径,我的是r'D:\DATA\xxx\YOLOX-main'),如图

错误2:DataLoader worker (pid(s) 1500,2504,5580,4160) exited unexpectedly

改正:exps/example/yolox_voc_s.py中添加第18行

错误3:找不到voc2012啥啥的,直接去掉就行

改正:exps/example/yolox_voc_s.py中47行注释那个改成图中48行那个

错误4:An error has been caught in function 'launch',process 'Mainprocess' (19114),thread 'Mainthread' (27692)

 改正:/yolox/data/datasets/voc.py文件中的316行改成317行

这个错误就很迷,我感觉改不改可能没啥感觉,改完那个还是有,但是改完下面这个吧,他也就没了。

错误5:[Errno 2] No such file or directory: 'D:\\code\\Anaconda\\envs\\yolox\\lib\\....

就别人都遇不到的问题,我能遇到,别人遇到的问题,我都没遇到,也不知道咋回事哎呀呀,这个错误很长,简单说就是他要找我的txt文件,他不在dataset里找,居然去我环境里了,当然找不到了,我迷啊我,最后不得不求助大佬!辛苦大佬给我改了哈哈哈,今天又是佩服大哥的一天!

改正:exps/example/yolox_voc_s.py中46行,105行,如图

 

3.5成功撒花

AP=86很厉害的样子

 4.测试

把你要预测的图片放到assets里,把YOLOX_outputs/yolox_voc_s中的最好的权重best_ckpt.pth放到weights里,在tools/demo.py文件中将COCO_CLASSES全部修改为VOC_CLASSES,其中15行变红了,加上前面那个,就ok了。

这个时候,我名副其实的bug王不可能成功,没错我又bug了,五花八门的bug啊,因为我训练的就一个东西,所以可能跟别人不太一样,建议只想跑一下下的就整个3个类别,肯定不会遇到我这么多问题。经过九九八十一难,自己解决不了再次求救过后,成功了!

 命令:

python tools/demo.py image -f exps/example/yolox_voc/yolox_voc_s.py -c ./weights/best_ckpt.pth --path assets/ --conf 0.25 --nms 0.45 --tsize 640 --save_result -
-device [cpu/gpu]

结果:

接下来还有接下来的代码要整,bug王可预测的还会出现各种各样的bug,仅以此来记录菜鸡学习过程中遇到的所有种种,学习路上磕磕绊绊还好有很多很多陌生人热情的帮助,真的很感谢呀!

  • 8
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 19
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值