yolov8训练
介绍
训练深度学习模型包括向其提供数据并调整其参数,以便其能够做出准确的预测。Ultralytics YOLOv8中的训练模式旨在充分利用现代硬件功能,对目标检测模型进行有效和高效的训练。本指南旨在涵盖使用YOLOv8强大的一组功能开始训练自己的模型所需的所有细节。
为什么选择Ultralytics YOLO进行训练?
以下是选择YOLOv8的Train模式的一些令人信服的理由:
效率:充分利用您的硬件,无论您是使用单个GPU设置还是跨多个GPU扩展。
多功能性:除了COCO、VOC和ImageNet等现成的数据集外,还可以在自定义数据集上进行培训。
用户友好型:简单而强大的CLI和Python界面,提供直观的培训体验。
超参数灵活性:广泛的可定制超参数,可微调模型性能。
训练模式的主要特点
以下是YOLOv8列车模式的一些显著特点:
自动数据集下载:标准数据集,如COCO、VOC和ImageNet,在首次使用时自动下载。
多GPU支持:跨多个GPU无缝扩展您的培训工作,以加快过程。
超参数配置:通过YAML配置文件或CLI参数修改超参数的选项。
可视化和监控:实时跟踪训练指标,可视化学习过程,以获得更好的见解。
提示
YOLOv8数据集,如COCO、VOC、ImageNet和许多其他数据集,在首次使用时自动下载,即yolo train data=COCO.yaml
用法示例
在COCO128数据集上以640尺寸的图像大小训练YOLOv8n 100个周期。可以使用设备参数指定训练设备。如果没有传递任何参数并且GPU加速可用,将使用GPU设备=0,否则将使用设备=cpu。有关训练参数的完整列表,请参阅下面的“参数”部分。
单GPU和CPU训练示例
设备是自动确定的。如果GPU可用,则将使用它,否则将在CPU上开始训练。
训练代码示例如下:
from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.yaml') # build a new model from YAML
model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)
model = YOLO('yolov8n.yaml').load('yolov8n.pt') # build from YAML and transfer weights# Train the model
results = model.train(data='coco128.yaml', epochs=100, imgsz=640)
使用命令训练(CLI)示例如下:
# Build a new model from YAML and start training from scratch
yolo detect train data=coco128.yaml model=yolov8n.yaml epochs=100 imgsz=640# Start training from a pretrained *.pt model
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco128.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640
多GPU训练
通过在多个GPU之间分配训练负载,多GPU训练允许更有效地利用可用硬件资源。此功能可通过Python API和命令行界面使用。要启用多GPU训练,请指定要使用的GPU设备ID。
python代码训练demo:
from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)# Train the model with 2 GPUs
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device=[0, 1])
命令训练(CLI)示例如下:
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=0,1
Apple M1和M2 MPS培训
随着对集成在Ultralytics YOLO型号中的Apple M1和M2芯片的支持,现在可以在使用强大的金属性能着色器(MPS)框架的设备上训练您的型号。MPS提供了一种在苹果定制硅上执行计算和图像处理任务的高性能方式。要在Apple M1和M2芯片上进行培训,在启动培训过程时应将“mps”指定为您的设备。以下是如何在Python中通过命令行执行此操作的示例:
python代码训练demo:
from ultralytics import YOLO# Load a model
model = YOLO('yolov8n.pt') # load a pretrained model (recommended for training)# Train the model with 2 GPUs
results = model.train(data='coco128.yaml', epochs=100, imgsz=640, device='mps')
命令训练(CLI)示例如下:
# Start training from a pretrained *.pt model using GPUs 0 and 1
yolo detect train data=coco128.yaml model=yolov8n.pt epochs=100 imgsz=640 device=mps
在利用M1/M2芯片的计算能力的同时,这使得能够更有效地处理训练任务。有关更详细的指导和高级配置选项,请参阅PyTorch MPS文档。
恢复中断的培训
在使用深度学习模型时,从以前保存的状态恢复训练是一个关键功能。这在各种情况下都很有用,比如当训练过程意外中断时,或者当您希望用新数据或更多时期继续训练模型时。
恢复训练时,Ultralytics YOLO从上次保存的模型加载权重,还恢复优化器状态、学习率调度器和历元数。这使您能够从中断的地方无缝地继续培训过程。
通过在调用train方法时将resume参数设置为True,并指定包含部分训练的模型权重的.pt文件的路径,可以轻松地在Ultralytics YOLO中恢复训练。
以下是如何使用Python并通过命令行恢复中断的培训的示例:
python代码训练demo:
from ultralytics import YOLO# Load a model
model = YOLO('path/to/last.pt') # load a partially trained model# Resume training
results = model.train(resume=True)
命令训练(CLI)示例如下:
# Resume an interrupted training
yolo train resume model=path/to/last.pt
通过设置resume=True,train函数将使用存储在“path/to/last.pt”文件中的状态,从停止的位置继续训练。如果省略了简历参数或将其设置为False,则培训功能将开始新的培训课程。
请记住,默认情况下,检查点保存在每个epoch的末尾,或者使用save_period参数以固定的间隔保存,因此您必须至少完成1个epoch才能恢复训练运行。
参数
参数详细讲解部分请见我的另一篇博客,链接是:
日志记录
在训练YOLOv8模型时,您可能会发现随着时间的推移跟踪模型的性能是很有价值的。这就是日志记录发挥作用的地方。Ultralytics的YOLO支持三种类型的记录器——Comet、ClearML和TensorBoard。
要使用记录器,请从上面代码段的下拉菜单中选择它并运行它。所选的记录器将被安装并初始化。
Comet
Comet是一个允许数据科学家和开发人员跟踪、比较、解释和优化实验和模型的平台。它提供了实时度量、代码差异和超参数跟踪等功能。
要使用Comet:
# pip install comet_ml
import comet_mlcomet_ml.init()
请记住在他们的网站上登录您的Comet帐户并获取您的API密钥。您需要将其添加到环境变量或脚本中,以记录您的实验。
ClearML
ClearML是一个开源平台,可以自动跟踪实验,并有助于有效共享资源。它旨在帮助团队更有效地管理、执行和复制他们的ML工作。要使用ClearML:
# pip install clearml
import clearmlclearml.browser_login()
运行此脚本后,您需要在浏览器上登录ClearML帐户并验证会话。
TensorBoard
TensorBoard是TensorFlow的可视化工具包。它允许您可视化TensorFlow图,绘制有关图执行的定量指标,并显示通过它的其他数据,如图像。
在谷歌可乐中使用TensorBoard:
load_ext tensorboard
tensorboard --logdir ultralytics/runs # replace with 'runs' directory
要在本地使用TensorBoard,请运行以下命令并在http://localhost:6006/.
tensorboard --logdir ultralytics/runs # replace with 'runs' directory
这将加载TensorBoard,并将其引导到保存培训日志的目录中。
设置好记录器后,您可以继续进行模型培训。所有培训指标都将自动记录在您选择的平台中,您可以访问这些日志来监控您的模型在一段时间内的性能,比较不同的模型,并确定需要改进的领域。
相关文章:
yolov8训练
介绍 训练深度学习模型包括向其提供数据并调整其参数,以便其能够做出准确的预测。Ultralytics YOLOv8中的训练模式旨在充分利用现代硬件功能,对目标检测模型进行有效和高效的训练。本指南旨在涵盖使用YOLOv8强大的一组功能开始训练自己的模型所需的所有细…...

抖音短视频账号矩阵系统、短视频矩阵源码+无人直播源码开发可打包
抖音短视频账号矩阵系统、短视频矩阵源码无人直播源码开发可打包 矩阵系统源码主要有三种框架:Spring、Struts和Hibernate。Spring框架是一个全栈式的Java应用程序开发框架,提供了IOC容器、AOP、事务管理等功能。Struts框架是一个MVC架构的Web应用程序框…...

NI和EttusResearchUSRP设备之间的区别
NI和EttusResearchUSRP设备之间的区别 概述 USRP(通用软件无线电外设)设备是业界领先的商软件定义无线电(SDR)。全球数以千计的工程师使用USRPSDR来快速设计、原型设计和部署无线系统。它们以两个不同的品牌进行营销和销售&…...
WPF UI样式介绍
WPF(Windows Presentation Foundation)是微软的一个用于创建桌面客户端应用程序的UI框架。WPF使用XAML(可扩展应用程序标记语言)作为其界面设计语言,这使得开发者能够以声明性方式定义UI元素和布局。 在WPF中…...

【开源】基于Vue.js的校园失物招领管理系统的设计和实现
目录 一、摘要1.1 项目介绍1.2 项目详细录屏 二、研究内容2.1 招领管理模块2.2 寻物管理模块2.3 系统公告模块2.4 感谢留言模块 三、界面展示3.1 登录注册3.2 招领模块3.3 寻物模块3.4 公告模块3.5 感谢留言模块3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 基于Vue…...

计算机视觉中目标检测的数据预处理
本文涵盖了在解决计算机视觉中的目标检测问题时,对图像数据执行的预处理步骤。 首先,让我们从计算机视觉中为目标检测选择正确的数据开始。在选择计算机视觉中的目标检测最佳图像时,您需要选择那些在训练强大且准确的模型方面提供最大价值的图…...
es 查询多个索引的文档
es 查询多个索引 第一种做法: 多个索引,用逗号隔开 GET /book_2020_09,book_2021_09/_search第二种做法: 可以用 * 模糊匹配。。比如 book* ,表示查询所有 book开头的 索引。 GET /book*/_search GET /*book*/_search第二种做…...
用java把服务器某个目录日志实时打印出来
1.引入第三方包 <dependency><groupId>com.jcraft</groupId><artifactId>jsch</artifactId><version>0.1.55</version> </dependency>2.代码如下 import com.jcraft.jsch.ChannelExec; import com.jcraft.jsch.JSch; import …...

金融信贷行业如何准确——大数据精准定位获客渠道
通过大数据精准获客,不仅可以及时拦截网址浏览量,还可以访问移动贷款应用软件的高频活跃客户和新注册客户。此外,通过大数据进行准确的客户获取,还可以获得电话座机号码的实时通信记录,捕捉小程序应用程序和关键词搜索…...
LeetCode 面试题 16.21. 交换和
文章目录 一、题目二、C# 题解 一、题目 给定两个整数数组,请交换一对数值(每个数组中取一个数值),使得两个数组所有元素的和相等。 返回一个数组,第一个元素是第一个数组中要交换的元素,第二个元素是第二…...

未来之路:大模型技术在自动驾驶的应用与影响
本文深入分析了大模型技术在自动驾驶领域的应用和影响,万字长文,慢慢观看~ 文中首先概述了大模型技术的发展历程,自动驾驶模型的迭代路径,以及大模型在自动驾驶行业中的作用。接着,详细介绍了大模型的基本定义、基础功…...
Skywalking流程分析_5(字节码增强)
SkyWalkingAgent.Transformer#transform 此方法就是进行字节码增强的过程 private static class Transformer implements AgentBuilder.Transformer {private PluginFinder pluginFinder;Transformer(PluginFinder pluginFinder) {this.pluginFinder pluginFinder;}Override…...

Windows conan环境搭建
Windows conan环境搭建 1 安装conan1.1 安装依赖软件1.1.1 python安装1.1.2 git bash安装1.1.3 安装Visual Studio Community 20191.1.3.1 选择安装的组件1.1.3.2 选择要支持的工具以及对应的SDK 1.1.4 vscode安装 1.3 验证conan功能1.4 查看conancenter是否包含poco包1.5 查看…...

如何使用Cpolar+Tipask,在ubuntu系统上搭建一个私人问答网站
文章目录 前言2.Tipask网站搭建2.1 Tipask网站下载和安装2.2 Tipask网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar临时数据隧道3.2 Cpolar稳定隧道(云端设置)3.3 Cpolar稳定隧道(本地设置) 4. 公网访问测试5. 结语 前…...
怎么在uni-app中使用Vuex(第一篇)
Vuex简介 vuex的官方网址如下 https://vuex.vuejs.org/zh/ 阅读官网请带着几个问题去阅读: vuex用于什么场景?vuex能给我们带来什么好处?我们为什么要用vuex?vuex如何实现状态集中管理? Vuex用于哪些场景? 组件之…...

【MySQL】库的相关操作 + 库的备份和还原
库的操作 前言正式开始创建数据库删除数据库编码集查看系统默认字符集以及校验规则字符集校验规则 所有支持的字符集和校验规则所有字符集所有校验规则 指明字符集和校验规则创建数据库相同的字符集用不同的校验规则读取会出现什么情况 alter修改数据库show create databasealt…...

网络安全基础之php开发文件上传的实现
前言 php是网络安全学习里必不可少的一环,简单理解php的开发环节能更好的帮助我们去学习php以及其他语言的web漏洞原理 正文 在正常的开发中,文件的功能是必不可少,比如我们在论坛的头像想更改时就涉及到文件的上传等等文件功能。但也会出…...

[文件读取]cuberite 文件读取 (CVE-2019-15516)
1.1漏洞描述 漏洞编号CVE-2019-15516漏洞类型文件上传漏洞等级⭐⭐⭐漏洞环境VULFOCUS攻击方式 描述: Cuberite是一款使用C语言编写的、轻量级、可扩展的多人游戏服务器。 Cuberite 2019-06-11之前版本中存在路径遍历漏洞。该漏洞源于网络系统或产品未能正确地过滤资源或文件路…...
SpringBoot 自定义参数校验(5)
文章目录 前言方式一 @Pattern方式二 自定义参数校验Controller层请求示例前言 本文基于SpringBoot 3.1.2,使用自定义参数规则来处理参数校验。 方式一 @Pattern 使用@Pattern,自定义正则表达式,以下是一个校验IP地址的示例: import jakarta.validation.constraints.Not…...
Win Docker Desktop + WSL2 部署PyTorch-CUDA服务至k8s算力集群
Win Docker Desktop WSL2 部署PyTorch-CUDA服务至k8s算力集群 Win Docker Desktop WSL2 安装安装WSL-Ubuntu拉取镜像并测试挂载数据并开放端口导出镜像或导入镜像在k8s集群部署 Win Docker Desktop WSL2 安装 首先根据你的操作系统版本 安装WSL ,记得切换WSL2&a…...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型
摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
Cesium1.95中高性能加载1500个点
一、基本方式: 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...