YOLOX安装流程记录-YOLOX修改训练文件

1 下载安装文件

2 查看环境\创建环境\激活环境

conda env list
conda create --name yolox
source activate yolox

3  安装requirements.txt文件里面的环境

pip install -r requirements.txt
 

遇到如下问题:
英文

ERROR: Could not find a version that satisfies the requirement nvidia-cublas-cu11==2022.4.8 (from versions: 0.0.1.dev5)
ERROR: No matching distribution found for nvidia-cublas-cu11==2022.4.
翻译

错误:找不到满足nvidia-cublas-cu11==2022.4.8要求的版本(来自版本:0.0.1.dev5)

错误:未找到nvidia-cublas-cu11==2022.4的匹配分布。
截图


问题原因:
我们经常通过pip安装东西时常常会出现ERROR: Could not find a version that satisfies the requirement xxx的问题。该问题常常会误导我们认为是下载的安装包之间存在冲突,因而花费大量的时间去配置各种各样的环境。
其实出现这个问题的原因是python国内网络不稳定,直接导致报错。因此我们常用镜像源来解决此问题。
解决办法:

pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

具体到安装yolox为

pip install -r requirements.txt -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

加上豆瓣云之后,结果是
ERROR: Could not find a version that satisfies the requirement nvidia-cublas-cu11==2022.4.8 (from versions: 0.0.1.dev5)
ERROR: No matching distribution found for nvidia-cublas-cu11==2022.4.8

4 参考requirements.txt安装完成后,pip3 install -v -e .
或者参考
https://github.com/Megvii-BaseDetection/YOLOX
安装。
值得注意的是这个安装需要在文件夹yolox-beifen内终端运行,这里面有setup.py文件

遇到问题:
英文

WARNING: Discarding file:///home/aaa/DL/code/%E8%88%AA%E6%B5%B7%E6%95%B0%E6%8D%AE%E6%99%BA%E8%83%BD%E6%AF%94%E8%B5%9B/code/yolox-beifen. Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
中文

警告:丢弃file:///home/aaa/DL/code/%E8%88%AA%E6%B5%B7%E6%95%B0%E6%8D%AE%E6%99%BA%E8%83%BD%E6%AF%94%E8%B5%9B/code/yolox-北芬。命令出错,退出状态为1:python设置。py egg\u info检查日志以获得完整的命令输出。

错误:命令出错,退出状态1:python设置。py egg\u info检查日志以获得完整的命令输出。

解决办法:
在有setup.py文件的路径下运行  pip3 install -v -e .

 另外如果遇到有些问题是:
没有安装torch
解决办法
安装torch,
或者直接在有torch的环境安装就行(我采用了这个办法使用了tan这个路径)

遇到问题
没有yolox

解决办法
这是因为路径不对yolox在文件夹yolox-beifen里面(上一级)

解决办法

 添加yolox文件夹所在的绝对路径

遇到问题
后面会遇到各种包每安装的情况,分别对应安装即可
ModuleNotFoundError: No module named 'mmcls'
ModuleNotFoundError: No module named 'xxx'
...
ModuleNotFoundError: No module named 'xxx'
mmcv

后面就成功运行了!

下面替换数据集
参考下面博客(十分清晰)
YOLOX训练自己的数据集(超详细)_AI小白一枚的博客-CSDN博客_yolox训练自己的数据集

0、数据集预处理

        在这里选择使用VOC格式对YOLOX进行训练,处理的图片主要包含三个文件夹,其中

1) Annotations存放的是xml标签数据,
2) JPEGImages存放的是图片数据,
3) ImageSets存放的是训练、验证、测试的txt文件。

1、改标签

将yolox/data/datasets/voc_classes.py中的标签信息,进行修改。

注意:类别后面都要加逗号,例如“car”后面加了一个逗号“,”。

2、 修改类别数量
exps/example/yolox_voc/yolox_voc_s.py 中的self.num_classes
 

3、修改训练集信息

修改
exps/example/yolox_voc/yolox_voc_s.py
中的VOCDection。

data_dir是前面product_ak的绝对路径,

images_sets修改为trainval

 max_labels表示图片最多的目标数量,设为50。

4、修改
yolox/data/datasets/voc.py
中,VOCDection函数中的读取txt文件。

5、修改
exps/example/yolox_voc/yolox_voc_s.py
中的get_eval_loader函数。

 data_dir是前面product_ak的绝对路径,

 images_sets修改为test

6、修改不同的网络结构

 以YOLOX_l网络为例,比如在 exps/default/yolox_s.py 中,
self.depth=1.0,self.width=1.0。
和Yolov5中的不同网络调用方式一样。

为了统一不同的网络结构,继续修改exps/example/yolox_voc/yolox_voc_s.py中的,self.depth和self.width。


再修改yolox/exp/yolox_base.py中的,self.depth和self.width。

 

7、修改其他相关参数

 --修改验证epoch的数量

目前代码中是训练迭代10个epoch,再对验证集做1次验证,但大白想每迭代1个epoch,即做一个验证,及时看到效果。

修改验证时的相关信息

主要对读取验证信息的相关代码进行调整,代码在yolox/data/datasets/voc.py中_do_python_eval函数中。

--因为自有数据集没有year信息,所以将其中的rootpath和name修改

--因为没有year信息,所以将其中的cachedir修改;修改use_07_metric的信息。

尝试进行训练

解决RuntimeError: CUDA error: device-side assert triggeredCUDA kernel errors...CUDA_LAUNCH_BLOCKING=1_锦鲤AI幸运的博客-CSDN博客

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机视觉-Archer

图像分割没有团队的同学可加群

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值