【YOLO】目标检测 YOLO框架之train.py参数含义及配置总结手册(全)

1.一直以来想写下基于YOLO开源框架的系列文章,该框架也是日常项目开发中常用的一款工具,最近刚好挤时间梳理、总结下这块儿的知识体系。
2.熟悉、梳理、总结下YOLO目标检测相关知识体系,之前实战配置时总是临时性检索些注释含义,但很多时候不太全或不想要,借此机会总结、更新下。
3.欢迎批评指正,跪谢一键三连!

  • YOLO框架系列总结-核心目录文件及含义如下所示:
    在这里插入图片描述

1.train.py parse_opt方法配置参考示例

def parse_opt(known=False):# argparse是python用于解析命令行参数和选项的标准模块,用于解析命令行参数,输入训练的参数和选项。parser = argparse.ArgumentParser()# 指定一个网络模型# yolov5s.pt, yolov5m.pt, yolov5l.pt, yolov5x.pt   这四种对应的是img = 640# yolov5s6.pt, yolov5m6.pt, yolov5l6.pt, yolov5x6.pt   这四种对应的是img = 1280parser.add_argument('--weights', type=str, default=ROOT / 'weights/yolov5s.pt', help='initial weights path')parser.add_argument('--cfg', type=str, default='', help='model.yaml path')parser.add_argument('--data', type=str, default=ROOT / 'data/WaterSurfaceGarbageDetection.yaml', help='dataset.yaml path')parser.add_argument('--hyp', type=str, default=ROOT / 'data/hyps/hyp.scratch-low.yaml', help='hyperparameters path')parser.add_argument('--epochs', type=int, default=300)# 一次往GPU哪里塞多少张图片了。决定了显存占用大小,默认是16。parser.add_argument('--batch-size', type=int, default=8, help='total batch size for all GPUs, -1 for autobatch')# img-size# 照片的尺寸,它在网络运行过程中,会将输入图片 / 视频的大小进行一个resize, 再送到我们的神经网络中,输入和输出的大小可能不变,但是在运算的过程中会改变parser.add_argument('--imgsz', '--img', '--img-size', type=int, default=640, help='train, val image size (pixels)')# 非矩阵大小图片处理方式parser.add_argument('--rect', action='store_true', help='rectangular training')# resume 重新开始; (中断后)继续;是否从最新的训练模型继续训练parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training')# parser.add_argument('--resume', nargs='?', const=True, default=False, help='resume most recent training')parser.add_argument('--nosave', action='store_true', help='only save final checkpoint')parser.add_argument('--noval', action='store_true', help='only validate final epoch')parser.add_argument('--noautoanchor', action='store_true', help='disable AutoAnchor')parser.add_argument('--noplots', action='store_true', help='save no plot files')parser.add_argument('--evolve', type=int, nargs='?', const=300, help='evolve hyperparameters for x generations')parser.add_argument('--bucket', type=str, default='', help='gsutil bucket')# 是否缓存图片,方便训练parser.add_argument('--cache', type=str, nargs='?', const='ram', help='--cache images in "ram" (default) or "disk"')parser.add_argument('--image-weights', action='store_true', help='use weighted image selection for training')# --device:CUDA设备,如果使用CPU训练就写cpu,如果用一块GPU训练就写0,如果有多块GPU就写 0,1,2,3parser.add_argument('--device', default='0', help='cuda device, i.e. 0 or 0,1,2,3 or cpu')# 图片尺寸变换parser.add_argument('--multi-scale', action='store_true', help='vary img-size +/- 50%%')# 训练数据集是单类别还是多类类别parser.add_argument('--single-cls', action='store_true', help='train multi-class data as single-class')# yolov5官方的预训练权重是基于FP16的,训练的时候使用的是FP32,此处储存空间就增加了一倍;# 同时官方预训练权重是不包含optimizer参数的,而我们训练的时候是把optimizer参数保存了的,这个可以打印出来看一下,# 所以最终我们训练的权重比预训练权重大很多。parser.add_argument('--optimizer', type=str, choices=['SGD', 'Adam', 'AdamW'], default='SGD', help='optimizer')# 多GPUparser.add_argument('--sync-bn', action='store_true', help='use SyncBatchNorm, only available in DDP mode')# 指数据装载时cpu所使用的进程数,默认为8parser.add_argument('--workers', type=int, default=8, help='max dataloader workers (per RANK in DDP mode)')# 保存路径parser.add_argument('--project', default=ROOT / 'runs/train', help='save to project/name')parser.add_argument('--name', default='exp', help='save to project/name')parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment')# 数据处理方式parser.add_argument('--quad', action='store_true', help='quad dataloader')parser.add_argument('--cos-lr', action='store_true', help='cosine LR scheduler')# 标签平滑  防止过拟合,标签平滑,弱化单个标签的作用parser.add_argument('--label-smoothing', type=float, default=0.0, help='Label smoothing epsilon')# 早停机制parser.add_argument('--patience', type=int, default=100, help='EarlyStopping patience (epochs without improvement)')parser.add_argument('--freeze', nargs='+', type=int, default=[0], help='Freeze layers: backbone=10, first3=0 1 2')parser.add_argument('--save-period', type=int, default=-1, help='Save checkpoint every x epochs (disabled if < 1)')parser.add_argument('--local_rank', type=int, default=-1, help='DDP parameter, do not modify')# Weights & Biases argumentsparser.add_argument('--entity', default=None, help='W&B: Entity')parser.add_argument('--upload_dataset', nargs='?', const=True, default=False, help='W&B: Upload data, "val" option')parser.add_argument('--bbox_interval', type=int, default=-1, help='W&B: Set bounding-box image logging interval')parser.add_argument('--artifact_alias', type=str, default='latest', help='W&B: Version of dataset artifact to use')opt = parser.parse_known_args()[0] if known else parser.parse_args()return opt

2.参数配置含义及作用

  • 源文件下载链接: YOLO框架train.py 中参数配置解释、数据标注格式解释
    在这里插入图片描述

3.参考链接

  • GitHub-ultralytics/yolov5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/6662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java下乡扶贫志愿者招募管理系统springboot-vue

计算机技术在现代管理中的应用&#xff0c;使计算机成为人们应用现代技术的重要工具。能够有效的解决获取信息便捷化、全面化的问题&#xff0c;提高效率。 技术栈 前端&#xff1a;vue.jsElementUI 开发工具&#xff1a;IDEA 或者eclipse都支持 编程语言: java 框架&#xff1…

[C++基础学习-04]----C++数组详解

前言 在C中&#xff0c;数组是一种用来存储相同类型元素的数据结构。一维数组是最简单的数组形式&#xff0c;它由一系列按顺序存储的元素组成。二维数组则是由一维数组构成的数组&#xff0c;可以看作是一堆一维数组堆叠在一起形成的矩阵。 正文 01-数组简介 一维数组和二维…

《QT实用小工具·五十六》自适应界面变化的控件

1、概述 源码放在文章末尾 该项目实现了网格显示多张带文字的图片在界面中自适应布局 特点 跟随窗口大小变换位置&#xff0c;并带移动动画 响应鼠标事件&#xff0c;图片缩放动画 点击水波纹动画 项目demo演示如下所示&#xff1a; 项目部分代码如下所示&#xff1a; #i…

【华为】路由综合实验(OSPF+BGP基础)

【华为】路由综合实验 实验需求拓扑配置AR1AR2AR3AR4AR5PC1PC2 查看通信OSPF邻居OSPF路由表 BGPBGP邻居BGP 路由表 配置文档 实验需求 ① 自行规划IP地址 ② 在区域1里面 启用OSPF ③ 在区域1和区域2 启用BGP&#xff0c;使AR4和AR3成为eBGP&#xff0c;AR4和AR5成为iBGP对等体…

半监督节点分类:标签传播和消息传递

基础概念回顾 传统图机器学习的特征工程——节点层面&#xff0c;连接层面&#xff0c;全图层面 节点层面&#xff1a;信用卡欺诈 连接层面&#xff1a;推荐可能认识的人 全图层面&#xff1a;预测分子结构 半监督节点分类 半监督节点分类&#xff1a;用已知标签节点预测未…

2011NOIP普及组真题 1. 数字反转

线上OJ&#xff1a; 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1953 核心思想&#xff1a; 本题可以直接对字符串处理&#xff0c;也可以 直接对 int 进行处理 int的范围是 -2,147,483,648 到 2,147,483,647&#xff0c;正好覆盖题中的 -1,000,000,0…

vue - 基本使用

转载改编自&#xff1a;https://www.bilibili.com/video/BV1Ap4y1W7MG/ 文章目录 二、Composition API&#xff08;组合式API&#xff09;1、setup2、API - ref3、API - reactive &#xff08;对象&#xff09;4、API - toRefs 三、Provide与Inject&#xff08;提供/注入&#…

秋招算法刷题8

20240422 2.两数相加 时间复杂度O&#xff08;max(m,n))&#xff0c;空间复杂度O&#xff08;1&#xff09; public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode headnull,tailnull;int carry0;while(l1!null||l2!null){int n1l1!null?l1.val:0;int n2l2!…

什么是责任链模式?有哪些应用?

一、定义、目的 责任链模式的目的是避免请求发送者与多个接收者之间的耦合关系&#xff0c;将这些接收者组成一条链&#xff0c;并沿着这条链传递请求&#xff0c;直到有一个接收者处理它为止。 在责任链模式中&#xff0c;通常将处理请求的对象称为处理器或者链的节点&#…

OpenWRT部署Zerotier虚拟局域网实现内网穿透

前言 细心的小伙伴肯定已经发现了&#xff1a;电脑上部署了Zerotier&#xff0c;如果路由器也部署了OpenWRT&#xff0c;那是否能远程访问呢&#xff1f; 答案是肯定的。 OpenWRT部署Zerotier有啥好处&#xff1f; 那好处必须多&#xff0c;其中的一个便是在外远程控制家里…

pytorch 线性代数基本操作

pytorch是非常好的人工智能训练和推理框架&#xff0c;我们来通过李沐老师的《动手学深度学习》来简单学习一下。 首先&#xff0c;安装pytorch&#xff0c;请参考pytorch官网&#xff1a;PyTorch 也可以到kaggle、colab、启智社区等使用配置好的pytorch环境&#xff0c;更简单…

图像压缩问题

图像压缩问题的bilibil讲解 1.问题引入 首先&#xff0c;图像是由像素组合成的&#xff0c;每个像素都有灰度值&#xff0c;灰度值是体现像素的颜色的。灰度值从0~255&#xff0c;灰度值占用的位数就是像素占用的位数。我们要存储一个图像就要存储它的所有像素。现在的问题是我…

0502_C高级H1

练习题&#xff1a; 5月2日作业&#xff1a; 第一题&#xff1a; 段错误 str指向申请堆空间内存的首地址&#xff0c;直接拷贝hello world 会导致段错误 第二题&#xff1a; 段错误 临时变量返回地址属于典型的段错误 第三题&#xff1a; hello 第四题&#xff1a; 段错误 free…

ssm(教学评价系统)

开发语言&#xff1a;Java JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09;服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.6/5.7&#xff08;或8.0&#xff09;数据库工具&#xff1a;Navicat 开发软件&#xff1a;idea 依赖管理包&#xff1a;Maven 代码数据库…

车载电子电器架构 —— 关于bus off汇总

车载电子电器架构 —— 关于bus off汇总 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

【uniapp】H5+、APP模拟浏览器环境内部打开网页

前言 今天将智能体嵌入到我的项目中&#xff0c;当作app应用时&#xff0c;发现我使用的webview组件&#xff0c;无论H5怎么登录都是未登录&#xff0c;而APP却可以&#xff0c;于是进行了测试&#xff0c;发现以下几种情况&#xff1a; 方法<a>标签webviewAPP✅✅网页…

Acwing2024蓝桥杯回溯

AcWing 167. 木棒 dfs剪枝: #include<iostream> #include<algorithm> #include<cstring> using namespace std; const int N70; int n,a[N],flag[N],sum,len; //a:每个木棍长度,flag:状态数组 //len:木棒的长度,sum:所有木棍的总长度 //cnt:当前正在拼第几根…

[C++核心编程-01]----C++内存四区详解

前言 结构体&#xff08;Struct&#xff09;是C中一种用户定义的复合数据类型&#xff0c;用于存储不同类型的数据项。结构体可以包含不同类型的数据成员&#xff0c;这些数据成员可以是基本类型&#xff08;如int、float、char等&#xff09;&#xff0c;也可以是数组…

Xcode 对应的 macOS、SDK 版本

最低要求和支持的 SDK 本表截取于 2024-05-04&#xff0c;更多更新可见&#xff1a;https://developer.apple.com/cn/support/xcode/ Xcode 版本要求的最低 OS 版本SDK架构部署目标模拟器SwiftXcode 15.3macOS Sonoma 14iOS 17.4 macOS 14.4 tvOS 17.4 watchOS 10.4 DriverKi…

spring高级篇(八)

本篇对Spring MVC 的执行流程做一个简单总结 MVC执行流程总结 当浏览器发送一个请求&#xff0c;例如http://localhost:8080/hello&#xff0c;请求到达服务器后&#xff0c;一般会进行如下操作&#xff1a; 1、首先会经过DispatcherServlet&#xff0c;默认映射路径为 /&…