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…...
后进先出(LIFO)详解
LIFO 是 Last In, First Out 的缩写,中文译为后进先出。这是一种数据结构的工作原则,类似于一摞盘子或一叠书本: 最后放进去的元素最先出来 -想象往筒状容器里放盘子: (1)你放进的最后一个盘子(…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
练习(含atoi的模拟实现,自定义类型等练习)
一、结构体大小的计算及位段 (结构体大小计算及位段 详解请看:自定义类型:结构体进阶-CSDN博客) 1.在32位系统环境,编译选项为4字节对齐,那么sizeof(A)和sizeof(B)是多少? #pragma pack(4)st…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
【2025年】解决Burpsuite抓不到https包的问题
环境:windows11 burpsuite:2025.5 在抓取https网站时,burpsuite抓取不到https数据包,只显示: 解决该问题只需如下三个步骤: 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
