IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> windows10搭建YOLOx环境 训练+测试+评估 -> 正文阅读

[Python知识库]windows10搭建YOLOx环境 训练+测试+评估


前言

YOLOX踩坑记录,基于VOC数据集,本文将详细介绍训练+测试+模型评估的过程和个人遇到的所有报错


1、必要环境

Windows10+python3.7+CUDA10.1+CUDNN7.6.5

2、安装

2.1 创建python3.7虚拟环境

  1. conda create -n yolo_x python=3.7
  2. activate yolo_x
    在这里插入图片描述

2.2 下载pytorch (pytorch版本>=1.7)

conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch

测试是否安装成功

  1. python
  2. import torch
  3. print(torch.cuda.is_available())
    在这里插入图片描述
    出现如上界面则证明安装成功

2.3 配置YOLOx环境

  1. 进入github官网下载源码:yolox源码地址
  2. 安装依赖包:pip install -r requirements.txt
  3. 安装yolox: python setup.py install
  4. 到官网下载apex,解压到项目文件夹内 地址:apex源码
  5. cd到apex文件夹内 cd apex-maste
  6. 安装apex python setup.py install
  7. 安装pycocotools pip install pycocotools
  8. 下载预训练模型 地址:模型地址
    在这里插入图片描述

2.4 测试效果

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

效果:
在这里插入图片描述
2 测试视频

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

效果:
在这里插入图片描述

注意:图片和视频路径要放在当前文件夹下!!!!

3、训练自己的VOC数据集

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

4、测试

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

测试效果
在这里插入图片描述

5、模型评估:

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层(减少运算量,加速推理的一个东西)

效果:(只训练了一批次map怪低的)
在这里插入图片描述

6、根据README.md流程走可能会出现的报错

6.1 编码报错 UnicodeDecodeError:gbk xxxxx

解决方案:
在这里插入图片描述
修改50行 加上encoding=”utf-8”

6.2 根据readme文档安装apex时报错 Removed build tracker:xxxxxxx

在这里插入图片描述
解决方案:
在这里插入图片描述
将以上代码修改成如下,记得一定要cd到apex-master文件夹内执行

python setup.py install

6.3 doesn’t contains class named ‘Exp’

解决方案:

  1. 拿yolox_s举例:
    将 -n yolox-s 改为 -f exps/default/yolox_s.py

  2. 如果是在pycharm里面运行代码,将相对路径改为绝对路径,如下所示:
    在这里插入图片描述

6.4 File ended prematurely 文件过早结束

这该死的报错耗了我大半个小时
解决方案:


在这里插入图片描述
改为
在这里插入图片描述
将–path 视频绝对路径改为相对路径!!!!!!!!!!!

6.5 测试时目标框显示的类别不对

解决方案:
参考 4、测试 的1,2步 运行python setup.py install更新yolox
在这里插入图片描述

6.6 测试COCO模型时IndexError: tuple index out of range

解决方案:
在tools\demo.py中把VOC_CLASSES 换回 COCO_CLASSES,修改85,256行左右的代码~
在这里插入图片描述

6.7 加载预训练模型的时候 RuntimeError: Error(s) in loading state_dict for YOLOX

解决方案:
将train文件中44行左右—resume 改成False

6.8 训练了10次进行模型评估的时候报错[Errno 2] No such file or directory: ‘xxx.xml’

解决方案:
在这里插入图片描述

总结

代码跑通了,开心

如有问题,欢迎评论区交流!
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:02:42  更:2021-07-26 12:02:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/25 14:06:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计