yolov8学习笔记(二)模型训练

目录

yolov8的模型训练

1、制作数据集(标记数据集)

2、模型训练(标记数据集、参数设置、跟踪模型随时间的性能变化)

2.1、租服务器训练

2.2、加训练参数

2.3、看训练时的参数(有条件,就使用TensorBoard)

3、模型验证

4、使用模型进行推理预测(视频、图像、视频流等)

5、模型转换(pt转为onnx等)

6、基准测试

7、评估训练结果

笔记下载


yolov8的模型训练

训练demo:windows使用YOLOv8训练自己的模型(0基础保姆级教学)_windows10使用yolov8常见问题-CSDN博客

1、制作数据集(标记数据集)

数据集概述 -Ultralytics YOLOv8 文档探索Ultralytics 支持的各种计算机视觉数据集,以进行物体检测、分割、姿态估计、图像分类和多物体跟踪。icon-default.png?t=N7T8https://docs.ultralytics.com/zh/datasets/#_8

数据集——增强与制作:

yolov8标签制作,数据增强指定网站。

​​​​​​Roboflow: Give your software the power to see objects in images and videoEverything you need to build and deploy computer vision models.https://roboflow.com/?ref=ultralyticsEverything you need to build and deploy computer vision models.icon-default.png?t=N7T8https://roboflow.com/?ref=ultralytics

使用教程:

注意:他这个网站标记的标签,是按照英语字母的顺序排的(所以我们平时也要养成好习惯,按照英语字母排类别)

比如:

bus、car、van——这样就可以了~(bus索引为0,car为1,van为2,以此类推~)

yolov8 roboflow 数据集增强与制作_哔哩哔哩_bilibiliyolov8标签制作,数据增强指定网站。https://roboflow.com/?ref=ultralytics, 视频播放量 978、弹幕量 0、点赞数 27、投硬币枚数 12、收藏人数 60、转发人数 7, 视频作者 deep_learing, 作者简介 深度学习,相关视频:【yolov8从入门到大神】01、课程基本介绍,roboflow模型辅助打标签,YOLOV9 is comming!我们一起来看看新提出的RepNCSPELAN与C2f有什么区别,YOLOV8项目已集成RepNCSPELAN,yolov8 bottleneck添加注意力机制,iPhone轻松搞定!用手机制作高级RGB-D数据集!,C#环境下部署YOLOv8模型,目标检测,超级简单,注意力机制添加总结,Yolov8源码解析(一),c2f添加注意力机制SA,yolov8检测头原理部分icon-default.png?t=N7T8https://www.bilibili.com/video/BV1o64y1J76p

在这里顺便记录简单标记标签的开源项目:labelimg(使用方法)

蓝奏云下载链接:labelImg-master.zip - 蓝奏云

github项目链接:labelImg - GitHub

大致用法:windows使用YOLOv8训练自己的模型

W是标记快捷键

A是切换为上一张

D是切换位下一张

记得自动保存~

记得去predefined_classes.txt里面修改自己需要的类别

再进阶的话,就用其他好用的工具

比如:自动标注项目AnyLabeling上手体验和教程_哔哩哔哩_bilibili

2、模型训练(标记数据集、参数设置、跟踪模型随时间的性能变化)

2.0用自己电脑的GPU训练:

一站式安装对应显卡版本的cuda和torch(windows)-CSDN博客文章浏览阅读1.1k次,点赞16次,收藏27次。1、安装python环境2、安装VS的C++环境(因为CUDA在安装时,需要VS的里面的工具包来编译。3、安装cuda4、安装pytorch。https://blog.csdn.net/Pan_peter/article/details/136125766用CPU也可以,不过比较慢

火车 -Ultralytics YOLOv8 文档使用Ultralytics YOLO 训练YOLOv8 模型的分步指南,包括单 GPU 和多 GPU 训练示例icon-default.png?t=N7T8https://docs.ultralytics.com/zh/modes/train/#m1m2-mps

多GPU训练

苹果M1和M2 MPS训练

恢复中断的训练

在训练YOLOv8模型时,跟踪模型随时间的性能变化可能非常有价值。

UltralyticsYOLO提供对三种类型记录器的支持 CometClearMLTensorBoard

2.1、租服务器训练

使用教程:云服务器训练YOLOv8-训练&改进教程_哔哩哔哩_bilibili

  1. 训练网址AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDLAutoDL为您提供专业的GPU租用服务,秒级计费、稳定好用,高规格机房,7x24小时服务。更有算法复现社区,一键复现算法。icon-default.png?t=N7T8https://www.autodl.com (找到适合的Torch版本,自带Conda)现在需要最新的yolov8需要 torch>=2.0.0 for deterministic training.

  1. 购买服务器(yolo训练一般显卡4G就够了,不过那里面一般都是12G以上)
  2. 上传训练文件(yolo固定版本库、data数据集、原始模型、train.py

  1. 执行python xxx.py (缺少什么库直接下载就行,缺不了什么,一般就是cv,np,pandas、scipy、seaborn)
  2. 如果缺少cvnp,pandas会无法训练
  3. 如果缺少scipy、seaborn会无法生成一些结果!

注意:可以用【后台运行python】的方法(防止我们远程断网,导致训练中断!)

可以看看这个文章:

Linux——让程序在后台运行(四种方法+使用推荐)_linux 后台运行-CSDN博客文章浏览阅读10w+次,点赞98次,收藏385次。第一种方法不推荐使用第二种方法——在需要查看日志的情况下,建议使用(无需在关闭的那种)第三种方法——在开启后,还需要关闭或还需要输入一些命令的时候下第四种方法——虽然需要学习的时间比前面几种长,但是学会之后,会很方便。_linux 后台运行https://blog.csdn.net/Pan_peter/article/details/128875714

pip install numpypip install opencv-pythonpip install pandaspip install scipypip install seaborn

火车 -Ultralytics YOLOv8 文档

YOLOv8训练参数详解(全面详细、重点突出、大白话阐述小白也能看懂)-CSDN博客文章浏览阅读3w次,点赞75次,收藏607次。model: 模型文件的路径。这个参数指定了所使用的模型文件的位置,例如 yolov8n.pt 或 yolov8n.yaml。模型文件包含了已经训练好的模型的权重和结构。data: 数据文件的路径。该参数指定了数据集文件的位置,例如 coco128.yaml。数据集文件包含了训练和验证所需的图像、标签和其他数据的信息。epochs: 训练的轮数。这个参数确定了模型将会被训练多少次,每一轮都遍历整个训练数据集。训练的轮数越多,模型对数据的学习就越充分,但也增加了训练时间。_yolov8训练参数https://blog.csdn.net/qq_37553692/article/details/130898732

2.2、加训练参数

data: 训练数据集的配置文件路径,一般为.yaml格式,包含了数据集路径、类别数、训练和验证集的划分等信息。

epochs(训练的轮数): 对于新数据集,可以逐渐增加轮数,以找到更佳的性能。

patience(早停的等待轮数): 用于控制在训练过程中是否进行早停,防止过拟合。

device(训练运行的设备): 指定模型训练所使用的设备,如GPUCPU

workers(数据加载时的工作线程数): 在数据加载过程中,可以使用多个线程并行地加载数据,以提高数据读取速度。

batch(每个批次中的图像数量): 一般认为越大越好,但受限于显存空间。

imgsz(输入图像的尺寸): 如果数据集中存在大量小对象,增大输入图像的尺寸可以使得这些小对象从高分辨率中受益,更好的被检测出。一般为正方形,常见大小为416512640等。

savesave_period(保存检查点的频率): 用于保存训练的检查点和预测结果,在训练不稳定中断后可以通过resume重新启动。

cache(数据加载时是否使用缓存): 控制数据加载时是否使用缓存,以提高训练过程中的数据读取速度。

seed: 随机种子,用于实现可重复性。通过设置相同的随机种子,可以使得每次运行时的随机过程保持一致,以便于结果的复现

name: 实验名称。该参数为当前训练任务指定一个名称,以便于标识和区分不同的实验。

optimizer: 选择要使用的优化器。优化器是深度学习中用于调整模型参数以最小化损失函数的算法。

deterministic: 是否启用确定性模式。启用确定性模式后,保证在相同的输入下,每次运行的结果是确定的,不会受到随机性的影响。

rect: 使用矩形训练,每个批次进行最小填充。设置为 True 后,训练过程中使用矩形形状的图像批次,并进行最小化填充。

cos_lr: 使用余弦学习率调度器。如果设置为 True,将使用余弦函数调整学习率的变化情况。

close_mosaic: 禁用mosaic增强的最后第几个轮次。可以指定一个整数值,表示在训练的最后第几个轮次中禁用mosaic增强。

2.3、看训练时的参数(有条件,就使用TensorBoard

主要是TensorBoard还阔以看【网络结构~】

  1. Epoch:表示当前正在进行的训练轮数。每个 epoch 表示模型已经使用整个训练数据集进行了一次完整的训练。
  2. GPu mem:表示当前 GPU 的内存使用情况,以 GB 为单位。这个参数可以告诉你模型在训练期间所使用的 GPU 内存量。如果内存使用过高,可能需要调整模型或减少批量大小。
  3. box loss:表示当前训练轮次中物体检测(bounding box)的损失值。物体检测损失是通过比较模型预测的边界框位置与实际边界框位置之间的差异来计算的。
  4. cls loss:表示当前训练轮次中的分类损失值。分类损失是通过比较模型预测的类别标签与实际类别标签之间的差异来计算的。
  5. dfl loss:表示当前训练轮次中的关键点检测(landmark detection)的损失值。关键点检测损失是通过比较模型预测的关键点位置与实际关键点位置之间的差异来计算的。
  6. Instances:表示当前训练轮次中处理的实例数量。这个参数用于衡量训练过程中处理的图像或样本数量。
  7. Class:表示目标类别的名称。
  8. Images:表示测试集中包含该类别的图像数量。
  9. Instances:表示测试集中该类别的实例数量。
  10. Box(P):表示该类别的目标检测精确率(Precision),即正确预测的边界框数量与预测的边界框总数之间的比例。
  11. R:表示该类别的目标检测召回率(Recall),即正确预测的边界框数量与实际边界框总数之间的比例。
  12. mAP50:表示该类别的平均精确度(mean Average Precision)值,计算方式是在 IoU 阈值为 0.5 的条件下,对每个类别进行精确度的平均计算。
  13. mAP50-95:表示该类别的平均精确度值,在 IoU 阈值从 0.5 0.95 变化时,对每个类别进行精确度的平均计算。

训练完成:

2.4、断续训练

用训练出来的last.pt继续训练

就是在参数中加入:resume=True

官网教程:火车 -Ultralytics YOLOv8 文档

model = YOLO('./last.pt')  # load a partially trained model# Train the modelmodel.train(data='./data/data.yaml', epochs=500, imgsz=640, workers=0, name='car', batch=32, resume=True)

3、模型验证

Val -Ultralytics YOLOv8 Docs

在机器学习流程中,验证是一个关键步骤,让您能够评估训练模型的质量。

4、使用模型进行推理预测(视频、图像、视频流等)

预测 -Ultralytics YOLOv8 文档了解如何在各种任务中使用YOLOv8 预测模式。了解不同的推理源,如图像、视频和数据格式。icon-default.png?t=N7T8https://docs.ultralytics.com/zh/modes/predict/#_4

YOLOv8 可以处理推理输入的不同类型,如下表所示。来源包括静态图像、视频流和各种数据格式。

5、模型转换(pt转为onnx等)

基准 -Ultralytics YOLOv8 文档了解如何剖析YOLOv8 在各种导出格式中的速度和准确性;深入了解 mAP50-95、准确性_top5 指标等。icon-default.png?t=N7T8https://docs.ultralytics.com/zh/modes/benchmark/#_6

6、基准测试

7、评估训练结果

评估训练结果:

Yolov8目标识别——模型训练结果可视化图分析与评估训练结果_yolov8可视化-CSDN博客文章浏览阅读1.4k次,点赞22次,收藏41次。Yolov8在训练完成之后,会在run目录下把训练的过程一些参数与结果示意图保存下来,这里面包含是目标检测性能指标,如下图:表示正确预测的目标数量与总预测数量的比率。表示模型正确预测为正样本的样本数量占所有预测为正样本的样本数量的比例。表示模型正确预测为正样本的样本数量占所有实际正样本的样本数量的比例。综合考虑精确率和召回率,是精确率和召回率的调和平均数。衡量模型检测出的区域与实际目标区域的重叠程度。在目标检测中,AP通常指Precision-Recall曲线下的面积,用于综合评估模型的性能。_yolov8可视化https://blog.csdn.net/matt45m/article/details/135620472

笔记下载

https://wwm.lanzout.com/isyZD1p3puyj
密码:hoab

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

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

相关文章

nginx设置缓存时间

一、设置缓存时间 当网页数据返回给客户端后,可针对静态网页设置缓存时间,在配置文件内的http段内server段添加location,更改字段expires 1d来实现:避免重复请求,加快访问速度 第一步:修改主配置文件 #修…

vue基础操作(vue基础)

想到多少写多少把&#xff0c;其他的想起来了在写。也写了一些css的 input框的双向数据绑定 html <input value"123456" type"text" v-model"account" input"accou" class"bottom-line bottom" placeholder"请输入…

Vue 卸载eslint

卸载依赖 npm uninstall eslint --save 然后 进入package.json中&#xff0c;删除残留信息。 否则在执行卸载后&#xff0c;运行会报错。 之后再起项目。

ETL快速拉取物流信息

我国作为世界第一的物流大国&#xff0c;但是在目前的物流信息系统还存在着几大的痛点。主要包括以下几个方面&#xff1a; 数据孤岛&#xff1a;有些物流企业各个部门之间的数据标准不一致&#xff0c;难以实现数据共享和协同&#xff0c;容易导致信息孤岛。 操作繁琐&#x…

Fisc: A Large-scale Cloud-native-oriented File System——论文泛读

FAST 2023 Paper 元数据论文阅读笔记汇总 问题和局限性 尽管云原生技术取得了进展&#xff0c;但现有的分布式文件系统不适合多租户云原生应用&#xff0c;原因有两点。 它们的客户端通常较重&#xff0c;导致容器之间的资源复用水平较低。每个客户端都需要保留许多独占资源&…

HDFS中常用的Shell命令 全面且详细

HDFS中常用的Shell命令目录 一、ls命令 二、mkdir 命令 三、put命令 四、get命令 五、mv命令 六、rm命令 七、cp命令 八、cat命令 前言 安装好hadoop环境之后&#xff0c;可以执行hdfs相关的shell命令对hdfs文件系统进行操作&#xff0c;比如文件的创建、删除、修改文…

Vue packages version mismatch 报错解决

问题 npm run dev 运行项目的过程中&#xff0c;报错 Vue packages version mismatch 解决方法 根据报错不难看出是 vue 与 vue-template-compiler 版本产生了冲突&#xff0c;vue 与 vue-template-compiler 的版本是需要匹配的。所以解决的办法就是先修改其中一个的版本将 v…

基于Springboot的旅游网管理系统设计与实现(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的旅游网管理系统设计与实现&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层…

利用nginx内部访问特性实现静态资源授权访问

在nginx中&#xff0c;将静态资源设为internal&#xff1b;然后将前端的静态资源地址改为指向后端&#xff0c;在后端的响应头部中写上静态资源地址。 近期客户对我们项目做安全性测评&#xff0c;暴露出一些安全性问题&#xff0c;其中一个是有些静态页面&#xff08;*.html&…

数据安全策略

当您在第一线担负着确保公司的信息和系统尽可能免受风险的关键职责时&#xff0c;您的数据安全策略需要复杂且多层次。威胁可能有多种形式&#xff1a;恶意软件、黑客攻击、财务或信息盗窃、破坏、间谍活动&#xff0c;甚至是您信任的员工故意或无意的活动造成的。因此&#xf…

c++:蓝桥杯中的基础算法1(枚举,双指针)

枚举 基础概念&#xff1a; 枚举&#xff08;Enum&#xff09;是一种用户定义的数据类型&#xff0c;用于定义一个有限集合的命名常量。在C中&#xff0c;枚举类型可以通过关键字enum来定义。 下面是一个简单的枚举类型的定义示例&#xff1a; #include <iostream>enum…

Android T 远程动画显示流程其二——动画的添加流程(更新中)

前言 接着上篇文章分析 Android T 远程动画显示流程其一 切入点——处理应用的显示过渡 下面&#xff0c;我们以从桌面点击一个应用启动的场景来分析远程动画的流程&#xff0c;窗口添加的流程见Android T WMS窗口相关流程 这里我们从AppTransitionController.handleAppTran…

学习python的第7天,她不再开放她的听歌榜单

我下午登录上小号&#xff0c;打开聊天消息看到了她的回复&#xff0c;我很开心兴奋&#xff0c;可是她不再开放她的听歌榜单了&#xff0c;我感觉得到&#xff0c;我要失恋了。 “因为当年电视上看没有王菲版本的” “行”。 “那你以后还会开放听歌榜单吗&#xff1f;”我…

【监控】grafana图表使用快速上手

目录 1.前言 2.连接 3.图表 4.job和path 5.总结 1.前言 上一篇文章中&#xff0c;我们使用spring actuatorPrometheusgrafana实现了对一个spring boot应用的可视化监控。 【监控】Spring BootPrometheusGrafana实现可视化监控-CSDN博客 其中对grafana只是打开了一下&am…

【Azure 架构师学习笔记】- Azure Databricks (10) -- UC 使用

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Databricks】系列。 接上文 【Azure 架构师学习笔记】- Azure Databricks (9) – UC权限 在前面的文章&#xff1a;【Azure 架构师学习笔记】- Azure Databricks (6) - 配置Unity Catalog中演示了如何配置一个UC。 本文…

SpringBoot 学习笔记

文章目录 一、IoC二、AOP三、bean3.1 bean 生命周期3.2 三种依赖注入方式3.3 bean 线程安全 四、SpringMVC五、常用注解5.1 Scope5.2 PostConstruct 和 PreDestroy5.3 Component 和 Bean5.4 Autowired 和 Resource 六、基于 ApplicationContextAware 实现工厂模式七、事务失效八…

【了解机器学习的定义与发展历程】

曾梦想执剑走天涯&#xff0c;我是程序猿【AK】 目录 简述概要知识图谱 简述概要 了解机器学习的定义与发展历程 知识图谱 机器学习&#xff08;Machine Learning&#xff0c;ML&#xff09;是一门跨学科的学科&#xff0c;它使用计算机模拟或实现人类学习行为&#xff0c;通…

设计模式: 策略模式

文章目录 一、什么是策略模式二、策略模式结构三、使用场景案例分析1、使用场景2、案例分析&#xff08;1&#xff09;消除条件分支 一、什么是策略模式 策略模式是一种行为型设计模式&#xff0c;它允许定义一组算法&#xff0c;并将每个算法封装在独立的类中&#xff0c;使它…

解决内嵌帆软报表出现重定向问题

最近收到反馈&#xff0c;某些程序的前端通过iframe标签内嵌finebi帆软报表时&#xff0c;出现一系列问题。 问题1: 如下图所示&#xff0c;单点登录(单点登录地址schema是https)后service地址的schema协议是http, 浏览器内核的安全测试不允许http访问https。 解决方案&#xf…

【C进阶】顺序表详解

文章目录 &#x1f4dd;线性表的概念&#x1f320; 顺序表&#x1f309;顺序表的概念 &#x1f320;声明--接口&#x1f309;启动&#x1f320;初始化&#x1f309;扩容&#x1f320;尾插&#x1f309; 打印&#x1f320;销毁&#x1f309; 尾删&#x1f320;头插&#x1f309;…