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

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值