【 YOLOv5】目标检测 YOLOv5 开源代码项目调试与讲解实战(3)-训练yolov5模型(本地)

训练yolov5模型(本地)

  • 训练文件 train.py
    • 训练如下图
  • 一些参数的设置
    • weights:
      • 对于weight参数,可以往Default参数中填入的参数有
    • cfg:(缩写)
      • cfg参数可以选择的网络模型
    • data
      • 对于data
    • hyp 超参数
    • epochs 训练多少轮
    • batch-size 把多少数据打包成一个batch,送到网络当中
    • img-size
    • rect:矩阵的训练方式
    • resume
    • nosave
    • notest
    • noautoanchor 锚点
    • evolve
    • bucket
    • cache-image
    • image-weight
    • device
    • multi-scale
    • single-cls
    • adam 优化器
    • sync-bn
    • local_rank
    • project
    • entity
    • name
    • exist-ok
    • quad
    • linear-lr
    • Label-smoothing
    • save-period

训练文件 train.py

往下翻,找到main函数
在这里插入图片描述

这里的works最好设置为0
在这里插入图片描述
运行如图,下载coco数据集中
在这里插入图片描述
在这里插入图片描述

超参数:学习速率等各种参数
库:显示权重

训练如下图

在这里插入图片描述
出现数据集下载的问题可以参考下面的解决方法
Dataset autodownload failure

训练文件保存的目录
在这里插入图片描述

如果没有发现该文件夹可以进行刷新
在这里插入图片描述

在这里插入图片描述

best.pt :在哪个训练轮数当中最好效果的网络模型参数
last.pt:最后一个训练的网络模型
hyp.yaml :训练过程中对模型的一些超参数
labels.jpg:标注的分布
labels_correlogram:标注的一些相关矩阵
opt.yaml:在训练过程中对参数的一些设置
results.txt:对训练结果的一些记录
tran_batch0.jpg:训练的一些图片

一些参数的设置

weights:

指定训练好模型的路径,用该模型去初始化网络中的一些参数(自动去下载这些模型),如果我自己拥有一个训练好的模型,放在某一个路径,把这个路径放进来,就会用我训练好的模型作为训练过程中模型的参数初始化。
但是我们现在的训练一般是从头开始训练,所以这里默认为空,采用程序对参数的权重对它初始化,不采用训练好的模型对他初始化
在这里插入图片描述

对于weight参数,可以往Default参数中填入的参数有

在这里插入图片描述

cfg:(缩写)

关于模型的一些配置,一般都存在model里面,
在这里插入图片描述
整个yolov55总共可以分为4个模型,
在这里插入图片描述
里面都是模型参数的一些设置
在这里插入图片描述

nc:模型应该分为多少个类
depth_multiple:模型的一些深度

如果选择小模型复制路径填入default
修改之后的代码为
在这里插入图片描述
我们现在来训练模型,这个模型的结构是yolov5s,其中的一些模型初始化的参数采用程序之中的简单初始化,不用其他已经训练好的模型来指定参数初始化

cfg参数可以选择的网络模型

在这里插入图片描述

data

指定训练数据集
在这里插入图片描述
在这里插入图片描述

download :指定从哪里下载数据集,没法下载就从浏览器复制地址粘贴下载
train:指定coco数据集应该下载到什么地方
nc:总共有多少个类别
names:每个类别的名称是什么
0 类别代表人

对于data

在这里插入图片描述

hyp 超参数

在这里插入图片描述
在这里插入图片描述
scratch 从头开始,一般把这个文件作为从头开始训练的文件
finetune:用于对模型进行一个微调

epochs 训练多少轮

默认300轮
在这里插入图片描述

batch-size 把多少数据打包成一个batch,送到网络当中

在这里插入图片描述

img-size

去分别设置训练集,和数列集的大小
在这里插入图片描述
5s对应640

rect:矩阵的训练方式

在这里插入图片描述
在这里插入图片描述
加速模型。减少不必要信息

resume

从最近训练的一个模型当中在它的基础上进行一个训练
在这里插入图片描述
默认是false,但并不是设置为ture就是能运行的,需要指定在哪一个模型的基础上进行一个继续的训练,需要告诉它模型处在什么地方,所以default 后应该设置为模型的位置
需要指定之前训练的模型文件,因为需要读取模型文件和相应的配置
在这里插入图片描述

在这里插入图片描述
运行就是从该模型停止的地方继续
在这里插入图片描述
在这里插入图片描述

nosave

我们在一个模型上训练很多次,如果设置为true,就生效了,只保存最后一次epoch训练的模型的一些权重数据,保存为pt文件
在这里插入图片描述

notest

是否只对最后一个epoch进行测试,按理说是对每个epoch上进行测试
在这里插入图片描述

noautoanchor 锚点

在目标检测算法中,大致可以分为有锚点的模型和没有锚点的模型

这里建议去查一下锚点锚框的相关知识

以前要是在图片中检测目标的话,要在图片上进行一个遍历,比如滑动窗口。现在都采用锚点的方式。

在这里插入图片描述
指定参数就会把锚点取消,默认是开启的

evolve

在这里插入图片描述

默认开启,对参数进行进化,寻找最优参数的方式
如果不明白参数是什么意思,可以去百度复制一下询问

bucket

作者之前把一些东西放在谷歌云盘上了,通过这个可以直接下载
在这里插入图片描述

cache-image

在这里插入图片描述

是否把图片缓存用于更好的训练

image-weight

从我们上一轮的测试过程中,对于哪些测试图片/测试部分,测试效果不好,在下一轮的训练过程中会对这些图片加一些相关的权重
在这里插入图片描述

device

设备
在这里插入图片描述

multi-scale

对图片尺寸进行变换
在这里插入图片描述

single-cls

训练的数据集是单类别还是多类别
在这里插入图片描述

adam 优化器

true选择优化器,false选择随机梯度下降
在这里插入图片描述

sync-bn

带DDP字眼的可以不用看了
在这里插入图片描述
分布式训练,多cpu

local_rank

DDP参数,不要去改
在这里插入图片描述

project

文件默认位置
在这里插入图片描述

entity

库,不用管
在这里插入图片描述
在这里插入图片描述

name

保存的文件名
在这里插入图片描述

exist-ok

在这里插入图片描述
不设置会存在exp1,2,3,4,5
设置了就存在一个exp里面

quad

在这里插入图片描述

按住ctrl+F可以找到的单词在什么位置,看源码
或者在问题里查询
在这里插入图片描述

linear-lr

对学习速率进行调整
在这里插入图片描述

Label-smoothing

标签平滑
在这里插入图片描述

save-period

程序日志
在这里插入图片描述

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

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

相关文章

全新ui自动化测试框架教学——Cypress

前言 在现阶段自动化测试领域大规模普及的是selenium及appium等常规自动化测试工具,但在其中会有遇到很多影响因素导致测试结果不理想和不准确的情况发生。在经过Darren洋对自动化测试工具调研后,发现了Cypress这一款针对端到端的自动化测试工具&#xf…

【Python基础】字符串

文章目录 [toc]什么是字符串索引示例索引越界 切片语法示例 字符串方法find()方法rfind()方法count()方法replace()方法 个人主页:丷从心 系列专栏:Python基础 什么是字符串 如下定义的变量url存储的是字符串类型的值 url www.baidu.com print(url)u…

【银行测试】金融银行-理财项目面试/分析总结(二)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 银行理财相关的项…

在Adobe Acrobat上如何做PDF文档签名

Adobe Acrobat如何做PDF文档签名?PDF文档签名是指对PDF文档进行基于证书的数字签名,类似于传统的手写签名,可标识签名文档的人员。与手写签名不同,数字签名难以伪造,因为其包含签名者唯一的加密信息。为PDF文档进行基于…

Starling-LM-7B与GPT-4:开源AI的新纪录

引言 在人工智能的前沿领域,Starling-LM-7B的出现标志着开源大型语言模型(LLM)的一大突破。与GPT-4的近距离竞争不仅展示了Starling-LM-7B的技术实力,也突显了开源社区在推动AI发展方面的重要作用。 模型特点 Starling-LM-7B&a…

java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化

工程项目管理软件是现代项目管理中不可或缺的工具,它能够帮助项目团队更高效地组织和协调工作。本文将介绍一款功能强大的工程项目管理软件,该软件采用先进的Vue、Uniapp、Layui等技术框架,涵盖了项目策划决策、规划设计、施工建设到竣工交付…

通过Python将PDF转为文本,快速提取PDF中的文字

快速高效地从PDF文档中提取信息对于专业人士来说非常重要。处理大量PDF文件时,将PDF转换为可编辑的文本格式可以节省时间和精力。而强大的Python语言正是在这些方面发挥其作用。利用Python中丰富的API,我们可以轻松在Python程序中将PDF转换为文本&#x…

im6ull学习总结(三)文字显示

文字显示 字符编码方式 编码与字体 一个字符以不同编码形式会保存为不同的二进制数。 ASCII American Standard Code for Information Interchange”的缩写,美国信息交换标准代码。 一个字节的 7 位就可以表示 128 个数值,在 ASCII 码中最高位永远是…

天津医科大学临床医学院专升本药学专业有机化学考试大纲

天津医科大学临床医学院高职升本科专业课考试大纲药学专业《有机化学》科目考试大纲 一、考试基本要求 本考试大纲主要要求考生对《有机化学》基本概念有较深入的了解,能够系统地掌握各类化合物的命名、结构特点及立体异构、主要性质、反应、来源和合成制备方法等…

将正规文法转化为正规式

将正规文法转化为正规式有以下几个规则: 通过一道例题来讲解: ①A-->aC|bA ②C-->bD ③D-->aC|bD| (1)首先将②带入③(不能将自身带入自身例如D-->aC|bD|,文法中带D,不能带入D) DabD|bD|(…

用电脑将图片转为excel表格有几种方法?怎么操作?

将图片转为Excel表格,一般需要借助OCR(光学字符识别)技术。OCR技术可以将图片中的文字提取出来,并转换成Excel表格中的数据。以下是几种常用的方法: 一、.使用在线OCR工具 1、打开金鸣表格文字识别(简称金鸣识别)网站…

第十一章 Stream消息驱动

Stream消息驱动 gitee:springcloud_study: springcloud:服务集群、注册中心、配置中心(热更新)、服务网关(校验、路由、负载均衡)、分布式缓存、分布式搜索、消息队列(异步通信)、数据库集群、…

32阵元 MVDR和DREC DOA估计波束方向图对比

32阵元 MVDR和DREC DOA估计波束方向图对比 一、原理 MVDR原理:https://zhuanlan.zhihu.com/p/457528114 DREC原理(无失真响应特征干扰相消器):http://radarst.ijournal.cn/html/2019/3/201903018.html 主要参数: 阵…

Idea如何从磁盘中应用 下载好的插件流程,安装zip压缩包。

1、将下载的插件文件(通常是一个ZIP文件)复制到IntelliJ IDEA的“plugins”文件夹中。 IDEA版本 2、重启IntelliJ IDEA。 3、在设置窗口中,选择左侧的“Plugins”。 4、选择之前复制到“plugins”文件夹中的插件文件,点击“OK”按…

大数据与人工智能|万物皆算法(第三节)

要点一:数据与智能的关系 1. 一切的核心都是数据,数据和智能之间是密切相关的。 数据是对客观现实的描述,而信息是数据转化而来的。 例如,24是数据,但说“今天的气温是24摄氏度”是信息,而说“班可以分成24…

Unity Shader UVLightReveal (紫外线显示,验钞效果)

Unity Shader UVLightReveal (紫外线显示,验钞效果) UVLight Reveal 实现验钞机的效果实现方案操作实现1.Light2.将另一个图形加入3.加上图形效果4.加上灯光的颜色自定义判定 源码 UVLight Reveal 实现验钞机的效果 大家应该都有见过验钞机验…

电脑系统坏了用U盘重装系统教程

我们平时办公、学习都会用到电脑,如果电脑系统坏了,就会影响自己正常使用电脑,这时候就可以通过U盘来重装一个正常的操作系统。如果您不知道具体的重装操作步骤,那么可以参考下面小编分享的利用U盘快速完成操作系统重装的步骤介绍…

VSCODE : SSH远程配置+免密登录

SSH基础配置 填入地址,回车 ssh userhost-or-ip 然后选择默认的配置,回车,得到以下结果: 点击链接 选择远程的系统 输入密码 免密登录 生成SSH密钥: 首先,确保你已经在本地生成了SSH密钥。你可以使…

在电脑上免费分区的 5 个有效磁盘分区软件工具

磁盘分区可能是一个脆弱而复杂的过程,磁盘崩溃或用户设备受到病毒攻击的风险很高。因此,它们很难由用户单独或手动管理。本文详细介绍了可以帮助简化磁盘分区过程的不同软件工具、它们的功能和优点。那么让我们开始吧。 什么是磁盘分区工具? …

企业级依赖管理: 深入解读 Maven BOM

一、背景 当开发者在一个大型项目中使用 Maven 进行依赖管理时,项目往往会包含多个模块或子项目,并且这些模块会共享相同的依赖项。但是,不同模块可能会独立地指定各自的依赖版本,这可能导致以下问题: 依赖版本不一致…