pytorch下 ultralytics yolov5 自定义数据集训练调试简记

0、起源

来自两个blog的大神

最初基础(有请大神1号):

https://blog.csdn.net/weixin_45033788/article/details/115148152

这里本来是基于yolov3的,但在我的机器上怎么都调不通,但基于此弄清楚了yaml和cfg的区别,其实yaml比cfg要简单很多,许多参数直接在一个地方调整就可以了

对应源码修改的地方,按下述方案一步一步来即可(有请大神2号):

https://blog.csdn.net/weixin_41868104/article/details/107339535

1、pip install –r requirements很重要

看到红色ERROR不要慌,一步一步调整,差什么就装什么

目前来看tensorboard出现问题几率最大。

安装tensorboard,jupyter, ipywidgets,注意jupter,ipywidgets由于我用的是anaconda,出现ERROR时不要用conda install进行安装,要用pip install

2、按照自定义数据集格式复制粘贴annatations,images文件夹内容

3、生成makeTx.py和voc.label.py并运行

注意修改voc_label.py中的class

4、生成自己的rbc.yaml

由于只检查一类,注意修改nc:1

names:[RBC]

5、修改yolov5m.yaml

其中nc:1

6、预训练权重下载

借用2号大神百度云链接如下;链接: https://pan.baidu.com/s/1x7yxl26Wr_K5sKEL6lJMPQ 密码: 24ba

下载完成后,放入应该放置的位置

7、修改train.py代码,

修改了–cfg ;–data ;–epochs ;–batch-size ; --img-size,蓝色显示

parser.add_argument('--weights', type=str, default='weights/yolov5s.pt', help='initial weights path') #debug by WeiDing,已经放在weights那里了

parser.add_argument('--cfg', type=str, default='models/yolov5m.yaml', help='model.yaml path')

parser.add_argument('--data', type=str, default='data/rbc.yaml', help='data.yaml path')

parser.add_argument('--batch-size', type=int, default=2, help='total batch size for all GPUs')

parser.add_argument('--device', default='1', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

parser.add_argument('--workers', type=int, default=0, help='maximum number of dataloader workers')

8. 执行train.py

由于用到了default,后续参数可不输入

8. 结果如下

 

注:1、去除out of memory要调整train.py 中device default=’1’,之前一直报错,是因为默认为0

2、各种神奇的报错,百度之,往往可以找到结果

--------------------------------4月14日添加-----------------------

增加几个调试的TIP

1、spyder3老出现 You have missing dependencies! # ipython =0.4 : None

AnacondaUI中卸载spyder,发现5.0不能工作,装回3.2.3,重新工作了

 

2、from google.protobuf.internal import enum_type_wrapperImportError: cannot import name 'enum_type_wrapper'

pip uninstall protobuf

cond install protobuf

 

3、CUDA unavailable, invalid device 0 requested

修改train.py中parser.add_argument('--device', default='cpu', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')

3.1 临时解决方案:把default='CPU'换成CPU解决了,但是问题没有完全解决,

3.2 让GPU跑起来吧,根据官网的issues,还是torch和torchvision版本不一致的问题,我当时无意中将torch删除后重装,但是安装的不是和cu101相关连的版本,所以导致这个问题产生

https://github.com/ultralytics/yolov5/issues/474

pip install torch==1.7.0+cu101 torchvision==0.8.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html

如果出现访问拒绝,在install后面加上--user

进到https://download.pytorch.org/whl/torch_stable.html中查看有什么稳定版本,依据提示,对应调整。

装好后'--device', default='0',GPU跑起来了,10分钟一个epoch立刻变成1分钟一个了,爽

4、hyp = yaml.load(f, Loader=yaml.SafeLoader)  # load hyps AttributeError: module 'yaml' has no attribute 'load'

https://blog.csdn.net/laovife/article/details/106715049

解决办法,将pyyaml版本更新至5.4,问题解决。

同时安装click0.7, 降低six1.10

记得重启anaconda

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLO系列是基于深度学习的端到端实时目标检测方法。 PyTorch版的YOLOv5轻量而高性能,更加灵活和易用,当前非常流行。 本课程将手把手地教大家使用labelImg标注和使用YOLOv5训练自己的数据集。课程实战分为两个项目:单目标检测(足球目标检测)和多目标检测(足球和梅西同时检测)。  本课程的YOLOv5使用ultralytics/yolov5,在Windows和Ubuntu系统上分别做项目演示。包括:安装YOLOv5、标注自己的数据集、准备自己的数据集(自动划分训练集和验证集)、修改配置文件、使用wandb训练可视化工具、训练自己的数据集、测试训练出的网络模型和性能统计。 除本课程《YOLOv5实战训练自己的数据集(Windows和Ubuntu演示)》外,本人推出了有关YOLOv5目标检测的系列课程。请持续关注该系列的其它视频课程,包括:《YOLOv5(PyTorch)目标检测:原理与源码解析》课程链接:https://edu.csdn.net/course/detail/31428《YOLOv5目标检测实战:Flask Web部署》课程链接:https://edu.csdn.net/course/detail/31087《YOLOv5(PyTorch)目标检测实战:TensorRT加速部署》课程链接:https://edu.csdn.net/course/detail/32303《YOLOv5目标检测实战:Jetson Nano部署》课程链接:https://edu.csdn.net/course/detail/32451《YOLOv5+DeepSORT多目标跟踪与计数精讲》课程链接:https://edu.csdn.net/course/detail/32669《YOLOv5实战口罩佩戴检测》课程链接:https://edu.csdn.net/course/detail/32744《YOLOv5实战中国交通标志识别》课程链接:https://edu.csdn.net/course/detail/35209 《YOLOv5实战垃圾分类目标检测》课程链接:https://edu.csdn.net/course/detail/35284  
PyTorch下使用Ultralytics YOLOv5训练自己的数据集,可以按照以下步骤进行操作: 1. 安装依赖库: ```shell pip install torch torchvision ``` 2. 克隆YOLOv5仓库: ```shell git clone https://github.com/ultralytics/yolov5.git ``` 3. 进入yolov5目录: ```shell cd yolov5 ``` 4. 准备数据集: - 将自己的数据集放置在`yolov5/data`目录下,包括图像和对应的标注文件(如YOLO格式的txt文件)。 - 在`yolov5/data`目录下创建一个新的文件夹,用于存放自己的数据集,例如`my_dataset`。 5. 配置数据集: - 在`yolov5/data`目录下创建一个新的文件,命名为`my_dataset.yaml`,用于配置自己的数据集。 - 在`my_dataset.yaml`中,按照以下格式填写配置信息: ```yaml train: ../my_dataset/train/images val: ../my_dataset/val/images nc: 1 # 类别数 names: ['class1'] # 类别名称 ``` 6. 划分训练集和验证集: - 在`yolov5/data`目录下创建`my_dataset/train`和`my_dataset/val`两个文件夹,分别用于存放训练集和验证集的图像和标注文件。 - 将数据集中的图像和对应的标注文件按照一定比例划分到`train`和`val`文件夹中。 7. 开始训练: ```shell python train.py --img 640 --batch 16 --epochs 50 --data my_dataset.yaml --weights yolov5s.pt ``` - `--img`:输入图像的大小。 - `--batch`:每个批次的图像数量。 - `--epochs`:训练的轮数。 - `--data`:数据集的配置文件。 - `--weights`:预训练模型的权重文件。 8. 查看训练结果: - 训练过程中的日志和权重文件保存在`yolov5/runs/train/exp`目录下。 - 可以使用TensorBoard查看训练过程中的损失曲线: ```shell tensorboard --logdir=runs/train/exp ``` 9. 进行推理: - 使用训练好的模型进行目标检测: ```shell python detect.py --source path/to/images --weights runs/train/exp/weights/best.pt --conf 0.4 ``` - `--source`:输入图像或视频的路径。 - `--weights`:训练好的权重文件。 - `--conf`:置信度阈值,用于过滤检测结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值