YOLOv8官方教程:如何训练模型

news2024/9/20 16:07:23

文章目录

  • 一、简介
  • 二、YOLOv8的优点
    • train模式特色
  • 三、训练
    • 3.1 单 GPU 和 CPU 训练示例
    • 3.2 多GPU训练
    • 3.3 Apple M1 和 M2 MPS 训练
    • 3.4 恢复中断的训练
  • 四、其他参数
  • 五、训练Log
    • 5.1 Comet
    • 5.2 ClearML
    • 5.3 TensorBoard

在这里插入图片描述

一、简介

本文介绍YOLOv8如何在单GPU、多GPU和Apple设备上训练数据。

二、YOLOv8的优点

  • 效率:充分榨干硬件性能,无论是单GPU还是多GPU
  • 多功能性:可以在 COCO、VOC 和 ImageNet数据集上训练模型,包括自定义数据集
  • 用户友好:可以用命令行快速启动训练,也可以用几行python代码启动
  • 超参数灵活性:各种可定制的超参数可微调模型性能。

train模式特色

以下是 YOLOv8 Train 模式的一些显着特点:

  • 自动下载数据集:首次使用时会自动下载 COCO、VOC 和 ImageNet 等标准数据集。
  • 多 GPU 支持:能够加快训练速度。
  • 超参数配置:通过 YAML 配置文件或 CLI 参数修改超参数的选项。
  • 可视化和监控:可视化训练指标和训练过程。
YOLOv8 数据集(例如 COCO、VOC、ImageNet 等)会在首次使用时自动下载,即yolo train data=coco.yaml

三、训练

在 COCO128 数据集上,训练输入图像分辨率为 640X640, 训练 YOLOv8n 100 个epoch。有关训练参数的完整列表,请参阅下面的参数部分。

3.1 单 GPU 和 CPU 训练示例

有GPU代码自动使用GPU,没有就自动切换为CPU训练。
python代码:
【重要的事情说三遍】:

  • yolov8n.yaml yolov8n.pt coco128.yaml自动下载
  • yolov8n.yaml yolov8n.pt coco128.yaml自动下载
  • yolov8n.yaml yolov8n.pt coco128.yaml自动下载
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)

或者在命令行执行(以下三条指令,选择执行一条就行):

# 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

3.2 多GPU训练

如果你有多个显卡,可以使用参数指定训练显卡。默认使用第0块显卡。

多GPU训练示例python代码:

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])

或者使用命令行

# 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

3.3 Apple M1 和 M2 MPS 训练

Apple自带处理器也可以用来加速训练。小数据集还差不多,数据集一大,肯定卡得一匹。
python代码:

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')

或者使用下面命令行:

# 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

3.4 恢复中断的训练

下面是如何使用 Python 和通过命令行恢复中断的训练的示例:
python代码:

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)

或者在命令行执行:

# Resume an interrupted training
yolo train resume model=path/to/last.pt

通过设置resume=True,该train函数将使用存储在“path/to/last.pt”文件中的状态从停止的地方继续训练。如果resume省略参数或将其设置为False,则train函数将开始新的训练会话。
请记住,默认情况下,检查点会在每个 epoch 结束时保存,或者使用参数以固定间隔保存save_period,因此您必须完成至少 1 个 epoch 才能恢复训练运行。

四、其他参数

YOLO 模型的训练设置是指用于在数据集上训练模型的各种超参数和配置。这些设置会影响模型的性能、速度和准确性。一些常见的 YOLO 训练设置包括批量大小、学习率、动量和权重衰减。其他可能影响训练过程的因素包括优化器的选择、损失函数的选择以及训练数据集的大小和组成。仔细调整和试验这些设置以获得给定任务的最佳性能非常重要。
(下表翻译看看就好)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、训练Log

在训练 YOLOv8 模型时,需要记录下训练过程中,模型的loss,各项性能指标等。Ultralytics 的 YOLO 提供对三种类型记录器的支持 - Comet、ClearML 和 TensorBoard。只需要安装这些库,训练过程总将自动调用。我推荐tensorboard。

5.1 Comet

Comet是一个允许数据科学家和开发人员跟踪、比较、解释和优化实验和模型的平台。它提供实时指标、代码差异和超参数跟踪等功能。

使用彗星:

# pip install comet_ml
import comet_ml
comet_ml.init()

请记住在其网站上登录您的 Comet 帐户并获取您的 API 密钥。您需要将其添加到环境变量或脚本中以记录实验。

5.2 ClearML

ClearML是一个开源平台,可自动跟踪实验并帮助高效共享资源。它旨在帮助团队更有效地管理、执行和重现他们的机器学习工作。

要使用 ClearML:

# pip install clearml
import clearml

clearml.browser_login()

运行此脚本后,您需要在浏览器上登录您的 ClearML 帐户并验证您的会话。

5.3 TensorBoard

TensorBoard是 TensorFlow 的可视化工具包。它允许您可视化 TensorFlow 图、绘制有关图执行情况的定量指标,并显示其他数据(例如通过图的图像)。Pytorch也可以用它进行可视化。

要在Google Colab中使用 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 并将其定向到保存训练日志的目录。例如:下图是我实际训练后,使用tensorboard在浏览器中可视化效果:
在这里插入图片描述

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

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

相关文章

家用小型洗衣机哪款性价比高?热门内衣洗衣机测评

随着现代社会的快速发展,洗衣机已经成为了家家必备的电器产品。但是我们清洗贴身衣物的话,并不能直接扔进洗衣机里面洗,主要原因就是会与其他的衣物产生交叉的感染,而且又不能更好地除去贴身衣物上的细菌,因此一台内衣…

带着问题去分析:Spring Bean 生命周期 | 京东物流技术团队

1: Bean在Spring容器中是如何存储和定义的 Bean在Spring中的定义是_org.springframework.beans.factory.config.BeanDefinition_接口,BeanDefinition里面存储的就是我们编写的Java类在Spring中的元数据,包括了以下主要的元数据信息: 1&…

腾讯云价格计算器有用过的吗?好用!

腾讯云服务器价格计算器可以一键计算出云服务器的精准报价,包括CVM实例规格价格、CPU内存费用、公网带宽收费、存储系统盘和数据盘详细费用,腾讯云百科txybk.com分享腾讯云价格计算器链接入口、使用方法说明: 腾讯云服务器价格计算器 打开腾…

ArcGIS Maps SDK for JS:关闭地图边框(v4.27)

文章目录 1 问题描述2 解决方案 1 问题描述 近期,将ArcGIS Api for JS v4.16更新到了ArcGIS Maps SDK for JS v4.27,原本去除地图的css代码失效了。v4.27需要用.esri-view-surface--touch-none::after控制边框属性。 下面为没有关闭地图边框的效果图。…

电脑录屏快捷键,轻松提升录屏效率

“想问问大家,电脑录屏有快捷键吗?每次都要去定位搜索才能打开,来来回回花费的时间太多,要是有快捷键就方便多了,有人知道电脑录屏的快捷键是什么吗。” 电脑录屏已经成为人们日常学习和工作中不可或缺的一部分&#…

WIFI7协议概述

简介 支持6G频段的320M带宽,提供更快地速度,OFDMA并发数提高至148(wifi6为74),最大连接终端数对比wifi6提升2倍 支持多链路连接,提供不同的延迟服务 支持rtwt,进行更加细化的节电管理 支持4096QAM高阶调制技术&…

中小型企业选择CRM系统时应该注意哪些?

如今市面上充斥着各种各样的CRM客户管理系统,尽管功能说的天花乱坠,中小企业选型时还是应该以自身需求为主。下面是中小企业选型CRM系统的几个要点,大家可以根据以下需求来筛选。 1、明确自身需求 决定企业选择哪一个CRM系统的前提应是需求…

盘点国产ChatGPT十大模型

什么是ChatGPT ChatGPT是一种基于OpenAI的GPT(Generative Pre-trained Transformer)模型的聊天机器人。GPT是一种基于深度学习的自然语言处理模型,它使用了Transformer架构来处理文本数据。GPT模型通过在大规模文本数据上进行预训练&#xff…

Clickhouse实时数仓建设

1.概述 Clickhouse是一个开源的列式存储数据库,其主要场景用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。今天,笔者就为大家介绍如何使用Clickhouse来构建实时数仓,来满足一些实时性要…

Docker系列---【mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据?】...

mysql容器手动停止后,重启服务器,mysql容器被删掉了,如何恢复mysql数据? 1.问题描述 为了快速搭建数据库,我使用了docker搭建数据库,由于服务器资源紧张,我想先把mysql容器停掉,启动…

Elsevier (爱思唯尔) 期刊 投稿流程与注意点

😄 Elsevier (爱思唯尔) 期刊投稿流程中还是遇到了不少问题的,本篇文章总结一些说明文档和提交要点。 ⭐ LaTex 模板说明 & 投稿流程与准备 latex模版和投稿流程相关参考说明可看下面几个网址,总结的非常全面了: Elsevier&am…

Geoda-双变量空间自相关

Geoda-双变量空间自相关https://mp.weixin.qq.com/s/cOkgBCf5ljlVJkWoIwkzxw 之前空间自相关—莫兰指数中简单写了一下如何在ArcGIS中计算莫兰指数,本次简要演示在Geoda中计算双变量空间自相关的步骤。案例数据是武汉市资源环境承载力指数(RECC&#xf…

Golang关键字-select

一、Select解决什么问题&#xff1f; 在Golang中&#xff0c;两个协程之间通信Channel&#xff08;图一&#xff09;&#xff0c;在接受协程中通过代码表示即为<ch&#xff1b;如果协程需要监听多个Channel&#xff0c;只要有其中一个满足条件&#xff0c;就执行相应的逻辑&…

尚硅谷Flume(仅有基础)

q 1 概述 1.1 定义 Flume 是Cloudera 提供的一个高可用的&#xff0c;高可靠的&#xff0c;分布式的海量日志采集、聚合和传输的系统。Flume 基于流式架构&#xff0c;灵活简单。 Flume最主要的作用就是&#xff0c;实时读取服务器本地磁盘的数据&#xff0c;将数据写入到HD…

易点易动固定资产管理系统:高效盘点海量固定资产的得力助手

固定资产是企业重要的财务资源之一&#xff0c;盘点是保证固定资产准确性和完整性的关键环节。然而&#xff0c;对于拥有海量固定资产的企业来说&#xff0c;传统的手工盘点方式效率低下且容易出错。为了解决这一难题&#xff0c;易点易动固定资产管理系统应运而生。本文将深入…

AM@第二类换元法积分

文章目录 abstract第一类换元法第二类换元法分析定理&#x1f47a;证明第二类换元公式的应用 倒代换三角恒等化去根式其他使用第二换元法情形例 附加积分公式表例 附 abstract 第二类换元法(简称第二换元法)的原理和应用 第一类换元法 通过变量代换 u ϕ ( x ) u\phi(x) uϕ…

GoLong的学习之路(十)语法之函数

书接上回&#xff0c;上回书说到&#xff0c;结构体&#xff0c;一言之重在于体。一体之重在于经。经之重甚于骨。这张就说go的经络—函数。 文章目录 函数函数如何定义参数可变参数 返回值多返回值 函数类型与变量 高阶函数函数作为参数函数作为返回值匿名函数闭包defer语句底…

虹科 | 解决方案 | 非道路移动机械诊断方案

虹科Pico汽车示波器为卡车、拖拉机、叉车、船只、联合收割机、挖掘机开发了专用的测试附件和软件测试菜单&#xff0c;比如 24 V 电池、Bosch Denoxtronic、J1939 通信、发动机和液压传动系统以及部件测试等。我们为从事重型车辆和非道路移动机械的维护与诊断的朋友&#xff0c…

通用表表达式查询

1.方法&#xff1a; 1.1普通变量创建 with 表名&#xff08;列名&#xff09; as&#xff08;select 内容&#xff09; 语义&#xff1a;创建一张表 列名和内容11对应 和临时表的区别&#xff0c;这个类似变量&#xff0c;变量和常量的区别 后面可以影响前面&#xff1a; 1…

通天之网:卫星互联网与跨境电商的数字化未来

在当今数字化时代&#xff0c;互联网已经成为商业的核心。跨境电商&#xff0c;作为在线商业的一部分&#xff0c;一直在寻求新的途径来拓宽其边界。近年来&#xff0c;卫星互联网技术的发展已经成为这一领域的重要驱动力&#xff0c;不仅将互联网带到了全球各个角落&#xff0…