跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)

这篇具有很好参考价值的文章主要介绍了跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 一些可用的参考链接

  • 官方YOLOv7 项目地址:https://github.com/WongKinYiu/yolov7
  • 如果想设置早停机制,可以参考这个链接:yolov7自动停止(设置patience)且输出最优模型时的PR图(test best.py)
  • 学习train.py中的参数含义,可参考手把手调参最新 YOLOv7 模型 训练部分 - 最新版本(二)
  • 学习detect.py中的参数含义,可参考手把手调参最新 YOLOv7 模型 推理部分 - 最新版本(一)

2. 开始训练yolov7

yolov7-tiny
参数量:6023106
GFLOPs:13.2

  • 🍀参考链接:Yolov7训练自己的数据集(超详细)
  • 参数详解参考的链接:YOLOV7开源代码讲解–训练参数解释
  1. 先进入官网下载yolov7-main代码(直接下载的master根目录代码)
  2. 直接点击下载yolov7-tiny.pt,有12MB
    如果是要在AutoDL中训练,则需要再下载Arial.ttf字体后上传到yolov7-main根目录
  3. 先跟着以下训练命令创建或者配置好一些文件,再回来复制这里面的训练命令,粘贴进终端开始训练

先放上我的训练命令,然后讲解设置到的重要参数的含义

建议:以下参数可以直接通过更改train.pydefault值来设置,通过default值来设置的好处是:
1)直接运行train.py即可,不用每次都来重复设置这些值
2)避免以后回顾代码时忘记了自己参数是怎么设置的
3)忘记在哪里看到了,说是在pycharm中直接运行py文件会比在终端设置参数来运行的训练速度快一些;如果是在AutoDL上训练那就没啥影响,因为是必须在终端中用命令来运行的。但是我觉得因为前2点原因还是直接先在py中设置好default值比较方便

python train.py --weights yolov7-tiny.pt --cfg cfg/training/yolov7-tiny.yaml --data data/mydata.yaml --hyp data/hyp.scratch.p5.yaml --epochs 300 --batch-size 32 --workers 16 --name yolov7-tiny

其他的重要参数:

  • --adam:命令行中直接加上--adam则表示使用Adam优化器,否则默认使用SGD(如果是自制数据集,建议使用Adam[其实这个策略也是学到的,忘记从哪儿学到的了,可自行尝试一下]。训练yolov5时我对比了一下,使用SGD时loss值变化比较平缓,相反Adam会比较波动。但是采用Adam训练结束之后,各项指标值比如map0.5、FPS等会高一些)

  • --img-size:设置将图像缩放至img-size统一尺寸,再喂入数据网络训练(默认是[640, 640],通常数据集采用这个尺寸就行了。如果是大分辨率图像且采用更大的网络,可适当调大img-size,保持是32的倍数就好。img-size值越大,占用显存就越多,训练速度就更慢,对显卡的要求就越高)

  • --rect:命令行中直接加上--rect则表示开启矩形推理(可以试试不开启和开启这个参数,然后对比训练结果。兴许开启之后会效果好一些)

  • --resume:命令行中加上--resume True则表示进行断点训练(需要开启这个命令通常是因为【训练突然中断or还想继续训练】,有需要的话可参考我这个博客进行更改👉yolov5ds-断点训练、继续训练、先终止训练并调整最终epoch(yolov5同样适用))

剩下的参数,可以参见我分享出来的训练参数解释链接


开始配置文件!!!sorry,前调太长了哈哈哈

2.1 --weights

--weights:用于指明预训练权重文件位置(如果不需要预训练权重,则使default值为空即''即可,或者终端中命令参数写成--weights ''

本篇文章是要使用yolov7-tiny,所以用到了yolov7-tiny.pt预训练权重。点击下载yolov7-tiny.pt

2.2 --cfg

--cfg:用于指明模型的配置文件(这个要指明training文件夹下的yolov7-tiny,注意是training下的yaml,不是deploy下的,写成这样:--cfg cfg/training/yolov7-tiny.yaml

2.3 --data

--data:用来指明自己的配置数据来源,建议将data文件夹下的coco.yaml复制另存为mydata.yaml。命令中写成--data data/mydata.yaml

跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)

注意:数据集不用必须存放到当前项目中,只要在mydata.yaml文件中的trainvaltest指明的txt文件包含了相应任务的图像绝对路径即可。(或者是直接在这里写上文件夹地址也可以,最好是绝对路径。images和labels排布如下所示)

如果已经存在如下的datasets数据集分布,则可以去我博客【脚本】生成已划分好训练集、验证集、测试集的数据集对应的train.txt、val.txt、test.txt【包含图像的绝对地址】调用代码生成所需txt文件:

datasets
├─images
│  ├─test
│  ├─train
│  └─val
├─labels
   ├─test
   ├─train
   └─val

2.4 --hyp

--hyp:超参数配置文件,我使用的是默认的data/hyp.scratch.p5.yaml文件(我将这个里面的数据增强给关掉了,yolov5中的在线数据增强我也关掉了,因为有人说过:自制的数据集本来复杂度就不够,开启在线数据增强的话,很容易训练效果不好,造成过拟合。但是我看还有一个超参数文件是data/hyp.scratch.tiny.yaml,不知道是不是专门用于tiny效果会好点,正在实验中[结果就是,这个tiny.yaml的超参数配置没有p5.yaml的效果好,map0.5降了2个点。还是就是用默认的超参数设置吧]

关闭在线数据增强的方式就是,将15行以下的值全部改为0

跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)

2.5 --epochs

--epochs:训练的轮数,默认为300(如果是自制数据集,类别不多且图像张数不多、复杂度也不是太多的话,设置200~300肯定是够的了)

2.6 --batch-size

--batch-size:设置一次性选用多少张图像进行训练(下图引自手把手调参最新 YOLOv7 模型 训练部分 - 最新版本(二))

(通常是8、16、32、64,这取决于自己的GPU内存有多大,大的话就可以设置多点,小的话设置成1、2、4、6、24等,最好是2的倍数。通常论文里面设置成的32、64)

跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)

2.7 --workers

--workers:训练时使用的CPU线程数。如果是在windows上训练,一定要设置成0,不然会出错;如果是Linux系统,通常设置成8、16(设置得越大,训练可能会快点)

2.8 --name

--name:设置结果保存文件夹的名称,默认是exp(建议使用这个参数,指明本次实验结果是训练什么模型,以免后续再回顾实验结果时搞不清楚,写成--name yolov7-tiny文章来源地址https://www.toymoban.com/news/detail-416976.html

到了这里,关于跑通官方的yolov7-tiny实验记录(yolov7-tiny可作为yolov5s的对比实验网络)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • YOLO系列 --- YOLOV7算法(一):使用自定义数据集跑通YOLOV7算法

    YOLO系列 --- YOLOV7算法(一):使用自定义数据集跑通YOLOV7算法

    这不就尴尬了。。。刚理解完美团出的YOLO V6算法,V7就出来了。。。而且最关键的是V7还有V4作者的背书,不过好在其实V6和V7都是在YOLO V5的基础上修改的代码,所以代码读起来就比较顺畅。YOLOV7算法打算按照以下的结构进行讲解: YOLOV7算法(一):使用自定义数据集跑通YO

    2024年02月04日
    浏览(12)
  • 实践航拍小目标检测,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的小目标检测识别分析系统

    实践航拍小目标检测,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建无人机航拍场景下的小目标检测识别分析系统

    关于无人机相关的场景在我们之前的博文也有一些比较早期的实践,感兴趣的话可以自行移步阅读即可: 《deepLabV3Plus实现无人机航拍目标分割识别系统》 《基于目标检测的无人机航拍场景下小目标检测实践》 《助力环保河道水质监测,基于yolov5全系列模型【n/s/m/l/x】开发构

    2024年03月18日
    浏览(13)
  • 助力工业园区作业违规行为检测预警,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建工业园区场景下作业人员违规行为检测识别系统

    助力工业园区作业违规行为检测预警,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建工业园区场景下作业人员违规行为检测识别系统

    在很多工业园区生产作业场景下保障合规合法进行作业生产操作,对于保护工人生命安全降低安全隐患有着非常重要的作用,但是往往在实际的作业生产中,因为一个安全观念的淡薄或者是粗心大意,对于纪律约束等意思薄弱,导致在进行正常的作业生产中并没有按照安全规

    2024年02月01日
    浏览(66)
  • AI助力农作物自动采摘,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建作物番茄采摘场景下番茄成熟度检测识别分析系统

    AI助力农作物自动采摘,基于YOLOv7【tiny/l/x】不同系列参数模型开发构建作物番茄采摘场景下番茄成熟度检测识别分析系统

    去年十一那会无意间刷到一个视频展示的就是德国机械收割机非常高效自动化地24小时不间断地在超广阔的土地上采摘各种作物,专家设计出来了很多用于采摘不同农作物的大型机械,看着非常震撼,但是我们国内农业的发展还是相对比较滞后的,小的时候拔草是一个人一列

    2024年02月19日
    浏览(15)
  • yolov7配置与训练记录(二)

    yolov7配置与训练记录(二)

    yolov7配置与训练记录(一) 已经完成了环境的配置,下面开始文件内部的操作 yolov7官方下载地址为 1 将下载好的预训练权重放在 yolov7-main/weights 内 需要在yolov7中新建weights文件夹(也是为了方便管理权重文件) 测试 如果未报错,则说明成功 2 将准备好的数据放在 yolov7-main/datasets 内

    2024年02月02日
    浏览(11)
  • YOLOV7 目标检测模型调试记录

    YOLOV7 目标检测模型调试记录

    YOLO系列在目标检测领域可谓名声赫赫,其性能表现不俗,如今其已经更新到了YOLOV7版本,今天便来一睹其风采。 博主之前只是对YOLO算法的原理一知半解,并未实验,因此并不熟练,因此,借此机会来进行实验以为日后的论文撰写做好准备。 看一下YOLOV7X的网络结构: 首先是

    2024年02月03日
    浏览(11)
  • YOLOV7学习记录之原理+代码介绍

    YOLOV7学习记录之原理+代码介绍

    博主计划做一个目标检测跟踪项目,考虑使用YOLO系列模型来作为目标检测器,如今YOLO项目已经更新到了YOLOV7版本,因此便来学习一下相关原理,完成相关实验工作。 论文链接:https://arxiv.org/abs/2207.02696 YOLOv7是 YOLO 系列最新推出的YOLO 结构,在 5 帧/秒到 160 帧/秒范围内,其速

    2024年02月03日
    浏览(8)
  • 基于yoloV7添加关键点训练记录

    基于yoloV7添加关键点训练记录

    yoloV7已经开源有一段时间了,近期已经基于yoloV7-pose的关键点算法进行了研究和修改。目前已经将该工程修改为,多分类+任意数量关键点:修改详细请看博客:基于yoloV7-pose添加任意关键点 + 多类别分类网络修改,修改代码已经开源:github地址,如果对大家有帮助也希望可以

    2024年01月17日
    浏览(12)
  • YOLOV7算法(三)损失函数ComputeLossOTA学习记录

    YOLOV7算法(三)损失函数ComputeLossOTA学习记录

    YOLOV7正负样本策略及ComputeLossOTA学习笔记 假设图中蓝色的点为GT的中心点,则YOLOV7中的ComputeLossOTA会把3个黄色的框视为正样本(对应着ComputeLossOTA类中的 find_3_positive 函数),而ComputeLossAuxOTA会把黄色框以及橙色框,总共5个框视为正样本(对应着ComputeLossAuxOTA类中的 find_5_positive 函数

    2024年02月11日
    浏览(14)
  • 【Visdrone数据集】Visdrone+YOLOv7结果记录

    【Visdrone数据集】Visdrone+YOLOv7结果记录

    命令 分辨率: 640*640 结果输出所在文件夹: yolov7_ epoch数量:设置的300 最终跑了140左右 命令: 结果 命令: 结果 命令 分辨率: 640*640 结果输出所在文件夹: yolov7_25 epoch数量:设置的300 修改部分: 运用cutout hyp 命令: 结果 命令: 结果 命令 分辨率: 640*640 结果输出所在文

    2024年02月07日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包