目标检测第8步:如何在Windows10系统下,训练YOLOv5 5.0自定义数据集?(本地)
请先看这篇文章: 本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客
很多刚入门的粉丝私信我说,他们的电脑配置很好,想在本地训练YOLOv5的自定义数据集,这样方便很多,不用担心资源被收回的问题,那就安排一下。
因为使用了Pycharm编辑器进行训练并对官方代码进行了细微修改,所以请看这篇文章:在Windows 10系统下,如何在Pycharm中配置YOLOv5虚拟环境?_Cat-CSDN博客_pycharm安装yolo
本文章的大部分内容与这篇Yolov5如何在Colab中训练自定义数据集?(更新时间:2022.3.14)_Cat-CSDN博客相似,所以先阅读上面这篇文章,到了“三、训练”的“4、正式训练”时,请阅读本文。
一、数据集目录结构
将构建好的数据集复制到与yolov5-master同一级目录下,如下图所示。
二、修改yaml文件夹内容
这里一共有2个yaml文件需要修改,一个在data文件夹里,另一个在models文件夹里。
刚才我们将自己的数据集文件名改为coco128,那么此时就要到data里修改coco128.yaml文件内容了,具体的目录结构、修改内容如下图所示:
我们训练时使用的预训练权重如果是yolov5s.pt,那么就得到models目录下的yolov5s.yaml文件中修改相应的参数,其它同理。比如使用的是yolov5s.pt,那么就得去修改,如下图所示。注意,请将预训练模型提前下载好,并放入weights文件夹中。
三、修改train.py代码让训练顺利进行
在Pycharm中打开train.py文件后,找到主函数入口,需要对里面的参数进行修改。下面直接贴出大部分参数所代表的含义。
""" --weights: 预训练权重文件的路径--cfg: 模型yaml文件的路径--data: 数据yaml文件的路径--hyp: 超参数文件的路径--epochs: 训练轮次--batch-size: 每批次文件投入量的多少--img-size: 图片尺寸--rect: 是否采用矩形训练,默认False--resume: 接着上次被打断训练的结果继续训练--nosave: 不保存模型,默认False--notest: 不进行test,默认False--noautoanchor: 不自动调整anchor,默认False--evolve: 是否进行超参数进化,默认False--bucket: 谷歌云盘bucket,一般不会用到--cache-images: 是否提前缓存图片到内存,以加快训练速度,默认False--image-weights:使用加权图像选择进行训练--device: 训练的设备,有CPU和GPU,0代表一个设备--multi-scale: 是否进行多尺度训练,默认False--single-cls: 数据集是否只有一个类别,默认False--adam: 是否使用adam优化器--sync-bn: 是否使用跨卡同步BN,在DDP模式使用--local_rank: DDP参数,请勿修改--workers: 最大工作核心数--project: 训练模型的保存位置--name: 模型保存的目录名称--exist-ok: 模型目录是否存在,不存在就创建
"""
上述的训练参数都有默认值,但是每台训练的设备不同,配置也不同,为了达到更好的训练效率,我们需要对上述参数进行修改。
1、预训练权重--weights。我们在介绍时,采用的是yolov5s.pt预训练权重,所以得下载该权重并复制到weights文件夹下。同时,我们还得修改--weights参数,关注到这里:
parser.add_argument('--weights', type=str, default='weights/yolov5s.pt', help='initial weights path')
2、模型yaml文件的路径--cfg。因为我们用的预训练模型是yolov5s.pt对应yolov5s.yaml,所以将此参数改为如下路径:
parser.add_argument('--cfg', type=str, default='models/yolov5s.yaml', help='model.yaml path')
3、我们将自己的数据集文件夹改为了coco128,所以对--data参数的修改如下:
parser.add_argument('--data', type=str, default='data/coco128.yaml', help='data.yaml path')
4、训练轮次。默认300,如果想更改,那么请关注到这里:
parser.add_argument('--epochs', type=int, default=300)
5、图片数量及工作核心数。这二者默认16和8。我的电脑CPU是 i9-10900K(10核心,20线程),GPU是RTX2060。如果图片输入数量设置时与核心数不匹配,那么就会出现“RuntimeError:CUDA out of memory. Tried to allocate......"的报错信息。需要修改这两个参数的同学,请关注这里:
parser.add_argument('--batch-size', type=int, default=16, help='total batch size for all GPUs')parser.add_argument('--workers', type=int, default=8, help='maximum number of dataloader workers')
6、避免虚拟内存不足报错
使用Pycharm编辑器进行训练时,可能会出现“OSError:[WinError 1455]页面文件太小,无法完成操作。 Error loading ......”,此时需要定位到utils文件夹下的datasets.py文件中,对第81行代码的“nw”参数进行修改,改为"num_worker=0"即可,如下图所示:
此时,即可运行train.py文件,训练自己的自定义数据集了。训练开始的截图如下图所示:
last.pt是最后一轮的权重文件,best.pt是最好的权重文件。
四、训练过程可视化
有同学注意到训练开始时,有提示说“tensorboard: Start with 'tensorboard --logdir runs/train', view at http://localhost:6006/”,所以,可以在Termianl框中输入:
tensorboard --logdir runs/train
在对应的页面看到训练过程,如下图所示:
如果模型训练完毕,那么将会使用如下命令查看训练结果:
tensorboard --logdir=runs
五、权重文件推理测验
将我们刚才训练产生的权重文件best.pt复制到weights文件夹中,使用命令行进行验证:
python detect.py --weights weights/best.pt --img 640 --conf 0.25 --source data/images/
# --weights后面跟的是权重文件的路径
# --conf后面是置信度
# --source后面是要推理的图片路径,可以具体到文件名,还可以是整个文件夹
到对应文件查看照片即可。
目标检测第8步:如何在Windows10系统下,训练YOLOv5 5.0自定义数据集?(本地)相关推荐
- 电脑开机密码怎么设置,教程在这里,Windows10系统下如何设置开机密码
无论在工作还是学习中大家自己的个人电脑都不太喜欢能让别人随意瞎弄,因此给电脑设置开机密码就能轻松解决这个问题.建议定期给电脑修改开机密码,下面小编就和大家一起来了解下如何在windows10系统下给电 ...
- 目标检测第7步:如何在Windows 10下,配置Pycharm中的YOLOv5(5.0)虚拟环境?
(请先看这篇文章:本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客) 这一篇博文和这一篇有异曲同工之妙,有兴趣的同学可以看一下:目标检测第5步:如何在Windows 10系 ...
- 目标检测第5步:如何在Windows 10系统下,搭建YOLOv5(5.0)环境?保姆级,没有人比这个更详细了(更新时间2022.3.22)
(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 目录 一.安装Anaconda或Miniconda 二.安装CUDA 三.安装cuDNN 四.安装Pyt ...
- 目标检测第3步:如何在Windows 10系统下安装CUDA(更新时间2022.03.22)
(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 目录 一.自检 1.查看PC是否有NVIDIA的独立显卡 2.查看自己NVIDIA独立显卡是否支持CUD ...
- 目标检测第4步:显卡、GPU、CUDA、cuDNN的介绍及如何在Windows 10下安装cuDNN?
(请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 目录 (请先看置顶博文)本博打开方式!!!请详读!!!请详读!!!请详读!!!_Cat-CSDN博客 一 ...
- Windows10系统下配置mmdetection2.6(超详细)
Windows10系统下配置mmdetection2.6(超详细) 因为最近参加目标检测的比赛,选择Varifocalnet做训练论文链接,代码链接,这个模型需要在mmdetection上配置,这篇博 ...
- 如何在Win10系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程
如何在Win10系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程 作者:张国军_Suger 开发工具与关键技术:VMware Workstation Pro.Win10系统 ...
- 如何在Linux系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程
如何在Linux系统下的IntelliJ IDEA 2018.3.5下载与安装以及激活教程 作者:张国军_Suger 开发工具与关键技术:VMware Workstation Pro.Linux系统( ...
- 【操作系统】如何在linux系统下运行C程序
如何在linux系统下运行C程序 linux系统与windows系统不同,如何在linux中运行C,我们来看看吧. 工具/原料 Linux虚拟机 电脑 方法/步骤 查看全文 http://www.ta ...
最新文章
- 【Python】解决Django Admin管理界面样式表(CSS Style)丢失问题
- 欢迎使用CSDN-markdown编辑器·211
- oracle sql 输出,将数据从Oracle SQL Developer导出到Excel .xlsx
- ManicTime软件破解
- hb-550s计算机电源,XFX TS 550金牌电源拆解及电路分析
- (转)淘淘商城系列——分布式文件系统FastDFS
- 机器学习算法总结之朴素贝叶斯法
- 基于 Windows7 + VMware-CentOS7虚拟机 搭建开发模式
- linux dhcp服务器设置,Linux DHCP服务设置浅述
- jsp session 的状态保持, cookie的跨域访问(一)
- 软件工程 电子书 免费 下载
- win10系统 pdf 文件缩略图及预览图无法显示问题之解决方法
- 基于 AUTOSAR 的电动汽车中央控制单元 CAN 通信软件开发
- 逻辑谬误_“完成”谬误
- 利用Docker 基于Uptime Kuma搭建服务器监控
- 服务器dns劫持修复,电脑DNS被劫持怎么修复 电脑dns被劫持解决方法
- abcd选项后的数据分析_引入新的数据abcs
- 计算机中的黑盘;蓝盘,绿盘;红盘;固态硬盘的区别
- 实现在GEF中被选中图形上的右键菜单
- Location虚拟定位
热门文章
- linux unshare 命令,详解Linux Namespace之User
- 小型微型计算机系统退回修改,小型微型计算机系统
- java实现2-3树_2-3-4树的分裂核心代码【JAVA实现】 | 学步园
- 解决jodconverter 2.2.1 版本不支持docx、xlsx、pptx 转换成PDF格式异常
- 工作流Flowable实战篇
- 企业实战_20_MyCat使用HAPpoxy对Mycat负载均衡
- Guns 切换Oracle分支
- 企业实战(Jenkins+GitLab+SonarQube)_02_Jenkins运行
- 主进程中发生javascript错误_你知道 JavaScript 中的错误对象有哪些类型吗?
- php脚本启动,有没有办法启动一个PHP脚本并获得状态?