Yolov8不废话!参考手册!

Yolov8使用

yolo task=detect mode=train model=yolov8n.pt       args...
          classify    predict     yolov8n-cls.yaml args...
          segment     val         yolov8n-seg.yaml args...
          export                  yolov8n.pt       format=onnx args...

使用Ultralytics YOLO进行模型训练

* 如COCO、VOC、ImageNet等YOLOv8数据集在首次使用时会自动下载,即 `yolo train data=coco.yaml`

使用示例

姿态模型

from ultralytics import YOLO

# 加载模型
model = YOLO('yolov8n-pose.yaml')  # 从YAML构建一个新模型
model = YOLO('model/yolov8n-pose.pt')  # 加载一个预训练模型(推荐用于训练)
model = YOLO('yolov8n-pose.yaml').load('yolov8n-pose.pt')  # 从YAML构建并传输权重

# 训练模型
results = model.train(data='coco8-pose.yaml', epochs=100, imgsz=640)
# 从YAML构建一个新模型并从头开始训练
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml epochs=100 imgsz=640

# 从一个预训练的*.pt模型开始训练
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

# 从YAML构建一个新模型,传输预训练权重并开始训练
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml pretrained=yolov8n-pose.pt epochs=100 imgsz=640

目标检测

from ultralytics import YOLO

# 加载模型
model = YOLO('yolov8n.yaml')  # 从YAML构建新模型
model = YOLO('model/yolov8n.pt')  # 加载预训练模型(推荐用于训练)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # 从YAML构建并转移权重

# 训练模型
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
# 从YAML构建新模型并从头开始训练
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640

# 从预训练的*.pt模型开始训练
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

# 从YAML构建新模型,传递预训练权重并开始训练
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

数据集格式

在COCO128数据集上训练YOLOv8n模型100个时期,图像大小为640。可以使用device
参数指定训练设备。如果没有传递参数,并且有可用的GPU,则将使用GPU device=0,否则将使用device=cpu。有关完整列表的训练参数,请参见下面的参数部分。

!!! 示例 “单GPU和CPU训练示例”

设备将自动确定。如果有可用的GPU,那么将使用它,否则将在CPU上开始训练。

from ultralytics import YOLO

# 加载一个模型
model = YOLO('yolov8n.yaml')  # 从YAML建立一个新模型
model = YOLO('model/yolov8n.pt')  # 加载预训练模型(推荐用于训练)
model = YOLO('yolov8n.yaml').load('yolov8n.pt')  # 从YAML建立并转移权重

# 训练模型
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
# 从YAML构建新模型,从头开始训练
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640

# 从预训练*.pt模型开始训练
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640

# 从YAML构建一个新模型,转移预训练权重,然后开始训练
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

多GPU训练

多GPU训练通过在多个GPU上分布训练负载,实现对可用硬件资源的更有效利用。无论是通过Python API还是命令行界面,都可以使用此功能。
若要启用多GPU训练,请指定您希望使用的GPU设备ID。

要使用2个GPU进行训练,请使用CUDA设备0和1,使用以下命令。根据需要扩展到更多GPU。

from ultralytics import YOLO

# 加载模型
model = YOLO('model/yolov8n.pt')  # 加载预训练模型(推荐用于训练)

# 使用2个GPU训练模型
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device=[0, 1])
# 使用GPU 0和1从预训练*.pt模型开始训练
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1

恢复中断的训练

在处理深度学习模型时,从之前保存的状态恢复训练是一个关键特性。在各种情况下,这可能很方便,比如当训练过程意外中断,或者当您希望用新数据或更多时期继续训练模型时。

恢复训练时,Ultralytics YOLO将加载最后保存的模型的权重,并恢复优化器状态、学习率调度器和时期编号。这允许您无缝地从离开的地方继续训练过程。

在Ultralytics YOLO中,您可以通过在调用train方法时将resume参数设置为True并指定包含部分训练模型权重的.pt
文件路径来轻松恢复训练。

下面是使用Python和命令行恢复中断训练的示例:

from ultralytics import YOLO

# 加载模型
model = YOLO('path/to/last.pt')  # 加载部分训练的模型

# 恢复训练
results = model.train(resume=True)
# 恢复中断的训练
yolo train resume model=path/to/last.pt

通过设置resume=Truetrain函数将从’path/to/last.pt’文件中存储的状态继续训练。如果省略resume
参数或将其设置为Falsetrain函数将启动新的训练会话。

请记住,默认情况下,检查点会在每个时期结束时保存,或者使用save_period参数以固定间隔保存,因此您必须至少完成1个时期才能恢复训练运行。

参数

YOLO模型的训练设置是指用于对数据集进行模型训练的各种超参数和配置。这些设置会影响模型的性能、速度和准确性。一些常见的YOLO训练设置包括批大小、学习率、动量和权重衰减。其他可能影响训练过程的因素包括优化器的选择、损失函数的选择以及训练数据集的大小和组成。仔细调整和实验这些设置以实现给定任务的最佳性能是非常重要的。

描述
modelNone模型文件路径,例如 yolov8n.pt, yolov8n.yaml
dataNone数据文件路径,例如 coco128.yaml
epochs100训练的轮次数量
patience50早停训练的等待轮次
batch16每批图像数量(-1为自动批大小)
imgsz640输入图像的大小,以整数表示
saveTrue保存训练检查点和预测结果
save_period-1每x轮次保存检查点(如果<1则禁用)
cacheFalseTrue/ram, disk 或 False。使用缓存加载数据
deviceNone运行设备,例如 cuda device=0 或 device=0,1,2,3 或 device=cpu
workers8数据加载的工作线程数(如果DDP则为每个RANK)
projectNone项目名称
nameNone实验名称
exist_okFalse是否覆盖现有实验
pretrainedTrue(bool 或 str) 是否使用预训练模型(bool)或从中加载权重的模型(str)
optimizer'auto'使用的优化器,选择范围=[SGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, auto]
verboseFalse是否打印详细输出
seed0随机种子,用于可重复性
deterministicTrue是否启用确定性模式
single_clsFalse将多类数据作为单类训练
rectFalse矩形训练,每批为最小填充整合
cos_lrFalse使用余弦学习率调度器
close_mosaic10(int) 最后轮次禁用马赛克增强(0为禁用)
resumeFalse从最后检查点恢复训练
ampTrue自动混合精度(AMP)训练,选择范围=[True, False]
fraction1.0训练的数据集比例(默认为1.0,即训练集中的所有图像)
profileFalse在训练期间为记录器分析ONNX和TensorRT速度
freezeNone(int 或 list, 可选) 在训练期间冻结前n层,或冻结层索引列表
lr00.01初始学习率(例如 SGD=1E-2, Adam=1E-3)
lrf0.01最终学习率 (lr0 * lrf)
momentum0.937SGD动量/Adam beta1
weight_decay0.0005优化器权重衰减5e-4
warmup_epochs3.0热身轮次(小数ok)
warmup_momentum0.8热身初始动量
warmup_bias_lr0.1热身初始偏差lr
box7.5框损失增益
cls0.5cls损失增益(根据像素缩放)
dfl1.5dfl损失增益
pose12.0姿态损失增益(仅限姿态)
kobj2.0关键点obj损失增益(仅限姿态)
label_smoothing0.0标签平滑(小数)
nbs64标称批大小
overlap_maskTrue训练期间掩码应重叠(仅限分割训练)
mask_ratio4掩码降采样比率(仅限分割训练)
dropout0.0使用dropout正则化(仅限分类训练)
valTrue训练期间验证/测试

记录

在训练YOLOv8模型时,跟踪模型随时间的性能变化可能非常有价值。这就是记录发挥作用的地方。Ultralytics的YOLO提供对三种类型记录器的支持 -
Comet、ClearML和TensorBoard。

要使用记录器,请在上面的代码片段中的下拉菜单中选择它并运行。所选的记录器将被安装和初始化。

TensorBoard

TensorBoard
是TensorFlow的可视化工具包。它允许您可视化TensorFlow图表,绘制有关图表执行的定量指标,并展示通过它的附加数据,如图像。

在Google Colab
中使用TensorBoard:

load_ext tensorboard
tensorboard --logdir ultralytics/runs  # 替换为'runs'目录

在本地使用TensorBoard,运行下面的命令并在 http://localhost:6006/ 查看结果。

tensorboard --logdir ultralytics/runs  # 替换为'runs'目录

这将加载TensorBoard并将其定向到保存训练日志的目录。

在设置好日志记录器后,您可以继续进行模型训练。所有训练指标将自动记录在您选择的平台中,您可以访问这些日志以监控模型随时间的表现,比较不同模型,并识别改进的领域。

Ultralytics YOLO 的模型导出

使用示例

将 YOLOv8n 模型导出为 ONNX 或 TensorRT 等不同格式。查看下面的参数部分,了解完整的导出参数列表。

from ultralytics import YOLO

# 加载模型
model = YOLO('model/yolov8n.pt')  # 加载官方模型
model = YOLO('path/to/best.pt')  # 加载自定义训练的模型

# 导出模型
model.export(format='onnx')
yolo export model=yolov8n.pt format=onnx  # 导出官方模型
yolo export model=path/to/best.pt format=onnx  # 导出自定义训练的模型

参数

YOLO 模型的导出设置是指用于在其他环境或平台中使用模型时保存或导出模型的各种配置和选项。这些设置会影响模型的性能、大小和与不同系统的兼容性。一些常见的
YOLO 导出设置包括导出的模型文件格式(例如 ONNX、TensorFlow SavedModel)、模型将在哪个设备上运行(例如
CPU、GPU)以及是否包含附加功能,如遮罩或每个框多个标签。其他可能影响导出过程的因素包括模型用途的具体细节以及目标环境或平台的要求或限制。重要的是要仔细考虑和配置这些设置,以确保导出的模型针对预期用例经过优化,并且可以在目标环境中有效使用。

描述
format'torchscript'导出的格式
imgsz640图像尺寸,可以是标量或 (h, w) 列表,比如 (640, 480)
kerasFalse使用 Keras 导出 TF SavedModel
optimizeFalseTorchScript:为移动设备优化
halfFalseFP16 量化
int8FalseINT8 量化
dynamicFalseONNX/TensorRT:动态轴
simplifyFalseONNX/TensorRT:简化模型
opsetNoneONNX:opset 版本(可选,默认为最新版本)
workspace4TensorRT:工作区大小(GB)
nmsFalseCoreML:添加 NMS

导出格式

下表中提供了可用的 YOLOv8 导出格式。您可以使用 format 参数导出任何格式的模型,比如 format='onnx'format='engine'

格式format 参数模型元数据参数
PyTorch-yolov8n.pt-
TorchScripttorchscriptyolov8n.torchscriptimgsz, optimize
ONNXonnxyolov8n.onnximgsz, half, dynamic, simplify, opset
OpenVINOopenvinoyolov8n_openvino_model/imgsz, half
TensorRTengineyolov8n.engineimgsz, half, dynamic, simplify, workspace
CoreMLcoremlyolov8n.mlpackageimgsz, half, int8, nms
TF SavedModelsaved_modelyolov8n_saved_model/imgsz, keras
TF GraphDefpbyolov8n.pbimgsz
TF Litetfliteyolov8n.tfliteimgsz, half, int8
TF Edge TPUedgetpuyolov8n_edgetpu.tfliteimgsz
TF.jstfjsyolov8n_web_model/imgsz
PaddlePaddlepaddleyolov8n_paddle_model/imgsz
ncnnncnnyolov8n_ncnn_model/imgsz, half

Yolov8 训练代码+部署事例+参考手册 1G资料

下载链接:点击下载
资料压缩包

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设置代码模板创建sql映射文件、Mybatis主配置文件

目录 1、Sql映射&#xff08;Sql Mapper&#xff09;文件的介绍 2、Mybatis的主配置文件的介绍 3、通过代码模板创建Sql映射文件 4、通过代码模板创建Mybatis主配置文件 1、Sql映射&#xff08;Sql Mapper&#xff09;文件的介绍 <?xml version"1.0" encod…

UCIE协议介绍--芯粒间互联标准

UCIE协议介绍--芯粒间互联标准 1 背景2 UCIE协议介绍2.1 协议层2.2 适配层2.3 物理层2.4 D2D接口 3 Transmission3.1 SideBand数据包3.2 SideBand包格式3.2.1 MRd/Mwr/CfgRd/CfgWr3.2.2 Completion3.2.3 Message 3.3 FDI接口信号 4 链路训练4.1 PHY LSM状态介绍 1 背景 为什么…

Windows 下使用C#开启蓝牙(未解决的坑)

需求 当程序检测到蓝牙未打开时需要程序自动将W10的蓝牙开启。 资料 Turn on/off Bluetooth radio/adapter from cmd/powershell in Windows 10 - Super User 上的这个连接是通过powershell 开启蓝牙具体代码如下 [CmdletBinding()] Param ([Parameter(Mandatory$true)][V…

代码随想录算法训练营第十三天 |239.滑动窗口最大值,347.前k个高频元素(待补充)

239.滑动窗口最大值 1、题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 2、文章讲解&#xff1a;代码随想录 3、视频讲解&#xff1a; 单调队列正式登场&#xff01;| LeetCode&#xff1a;239. 滑动窗口最大值_哔哩哔哩_bili…

LeetCode 热题 100 | 滑动窗口

目录 1 3. 无重复字符的最长子串 2 438. 找到字符串中所有字母异位词 菜鸟做题第二周&#xff0c;语言是 C 1 3. 无重复字符的最长子串 解题思路&#xff1a; 设置两个指针&#xff0c;左指针和右指针&#xff0c;二者之间形成窗口右指针不断右移&#xff0c;新字母被纳…

百家云BRTC的解决方案

随着网络实时通信技术&#xff08;Web Real-Time Communication&#xff0c;简称WebRTC&#xff09;的不断发展和普及&#xff0c;webRTC已成为现代互联网通讯领域的核心技术之一。它体现在方方面面比如&#xff1a; 实时视频通话&#xff1a; WebRTC 可以用于实现浏览器之间的…

开源运维监控工具Uptime Kuma本地部署并结合内网穿透实现公网访问

目录 主要功能 一、前期准备 本教程环境为&#xff1a;Centos7&#xff0c;可以跑Docker的系统都可以使用本教程安装。 本教程使用Docker部署服务&#xff0c;如何安装Docker详见&#xff1a; 二、Docker部署Uptime Kuma 三、实现公网查看网站监控 四、使用固定公网地址…

网管协议SNMPv1/v2c的配置案例

知识改变命运&#xff0c;技术就是要分享&#xff0c;有问题随时联系&#xff0c;免费答疑&#xff0c;欢迎联系&#xff01; 厦门微思网络​​​​​​ https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle O…

(二十四)Kubernetes系列之Helm3

Helm为kubernetes的包管理工具&#xff0c;就像Linux下的包管理器&#xff08;yum/apt等&#xff09;&#xff0c;可以很方便的将之前打包好的yaml文件部署到kubernetes上。 1.安装访问地址&#xff1a;https://github.com/helm/helm/releases 点击查看最新的版本&#xff0c…

2024阿里云优惠政策解读,共4点

阿里云优惠政策有哪些&#xff1f;2024年阿里云优惠政策风向改了&#xff0c;之前一直是老用户与狗的营销策略&#xff0c;今年阿里云2核2G、3M固定带宽服务器99元居然开启了老用户购买权限&#xff0c;并且续费不涨价&#xff0c;阿里云这波操作确实让用户赢麻了&#xff0c;在…

IoC 容器总结

目录 理解 IoC 实现方式 DI 实现原理 Autowired VS Resource 区别 IoC 和 DI 有什么区别 理解 IoC IoC——控制反转&#xff0c;是 Spring 框架的核心概念之一&#xff0c;是一种设计原则和编程模式&#xff0c;用于实现松耦合和可测试的应用程序 控制反转&#xff1a;对…

多特征变量序列预测(六) CEEMDAN+CNN-Transformer风速预测模型

目录 往期精彩内容&#xff1a; 前言 1 多特征变量数据集制作与预处理 1.1 导入数据 1.2 CEEMDAN分解 1.3 数据集制作与预处理 2 基于Pytorch的CEEMDAN CNN-Transformer 预测模型 2.1 定义CEEMDAN CNN-Transformer预测模型 2.2 设置参数&#xff0c;训练模型 3 模型…

《WebKit 技术内幕》学习之八(1):硬件加速机制

《WebKit 技术内幕》之八&#xff08;1&#xff09;&#xff1a;硬件加速机制 1 硬件加速基础 1.1 概念 这里说的硬件加速技术是指使用GPU的硬件能力来帮助渲染网页&#xff0c;因为GPU的作用主要是用来绘制3D图形并且性能特别好&#xff0c;这是它的专长所在&#xff0c;它…

现代密码学基础(2)

目录 一. 介绍 二. 举例&#xff1a;移位密码 &#xff08;1&#xff09;密文概率 &#xff08;2&#xff09;明文概率 三. 举例&#xff1a;多字母的移位密码 四. 完美安全 五. 举例&#xff1a;双子母的移位密码 六. 从密文角度看完美安全 七. 完美保密性质 一. 介绍…

2024年【陕西省安全员B证】免费试题及陕西省安全员B证复审考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年陕西省安全员B证免费试题为正在备考陕西省安全员B证操作证的学员准备的理论考试专题&#xff0c;每个月更新的陕西省安全员B证复审考试祝您顺利通过陕西省安全员B证考试。 1、【多选题】下列关于安全帽&#xf…

盘点几种有线扩展Wifi覆盖范围方式的优缺点

前言 前几天小白到一个朋友的家里&#xff0c;发现她家的主路由是放在玄关的。 这个方式就导致了她家三个卧室的Wifi信号都很弱。 她叫我过去帮忙弄一下网络的问题&#xff0c;这个对于有一点电脑知识的小伙伴来说&#xff0c;基本上不是什么难事&#xff0c;因为每个房间基本…

Windows 下ffmpeg安装及实践

Windows 下ffmpeg安装及实践 背景安装实践其他 背景 最近负责音频文件处理相关的业务&#xff0c;涉及到 ffmpeg 对一些音频文件格式的校验&#xff0c;记录一下安装过程及踩坑过程。 安装 如图1所示&#xff0c;进入官网&#xff0c;在windows下任选一个文件&#xff1a;h…

负债 1092.8 亿美元,苹果成全球负债第二多的科技公司丨 RTE 开发者日报 Vol.131

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

【网站项目】基于SSM的271楚师师生健康管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

【数据结构】在链队列中你可能忽视的二三事

链队列及其基本操作的C语言实现 导言一、链队列二、链队列的基本操作的实现2.1 链队列的数据类型2.2 链队列的初始化2.2.1 带头结点的链队列的初始化2.2.3 不带头结点的链队列的初始化 2.3 链队列的判空2.3.1 带头结点的链队列的判空2.3.2 不带头结点的链队列的判空 2.4 链队列…