当前位置: 首页 > news >正文

【 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

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

相关文章:

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

训练yolov5模型(本地) 训练文件 train.py训练如下图 一些参数的设置weights:对于weight参数,可以往Default参数中填入的参数有 cfg:(缩写)cfg参数可以选择的网络模型 data对于data hyp 超参数epochs 训练多…...

fastApi 项目部署

方式一,Uvicorn部署 Run a Server Manually - Uvicorn - FastAPI 1,linux服务器安装 python>3.8 2,安装 uvicorn : pip install "uvicorn[standard]" 3,上传项目到服务器 main.py from typing imp…...

python操作mysql数据库

说明:这里仅仅为了演示python操作MySQL数据库,真实环境中,最好把CURD分别封装为对应的方法。并将这些方法在类中封装,体现python面向对象的特征。python链接MySQL数据库 建表 create database mydb; use mydb; create table EMP…...

Redis6.0 Client-Side缓存是什么

前言 Redis在其6.0版本中加入了Client-side caching的支持,开启该功能后,Redis可以将指定的key-value缓存在客户端侧,这样当客户端发起请求时,如果客户端侧存在缓存,则无需请求Redis Server端。 Why Client-side Cac…...

Leetcode—1572.矩阵对角线元素的和【简单】

2023每日刷题&#xff08;七十三&#xff09; Leetcode—1572.矩阵对角线元素的和 实现代码 class Solution { public:int diagonalSum(vector<vector<int>>& mat) {int n mat.size();if(n 1) {return mat[0][0];}int sum 0;int i 0, j n - 1;while(i &…...

基于SpringBoot的二手手机商城系统的设计与实现

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot的二手手机商城系统的设计…...

OpenFeign相关面试题及答案

1、什么是OpenFeign&#xff0c;它如何简化远程服务调用&#xff1f; OpenFeign是一个声明式的Web服务客户端&#xff0c;它使得编写HTTP客户端变得更加容易。它属于Spring Cloud Netflix项目的一部分&#xff0c;可以与Spring Boot应用轻松集成。通过使用OpenFeign&#xff0…...

c盘扩容时,d盘无法删除卷问题

C盘扩容时&#xff0c;磁盘管理中D盘右键无法删除卷的原因 首先&#xff0c;D盘下文件夹为空&#xff0c;但是显示可用空间不是100%&#xff0c;经过排查&#xff0c;发现是虚拟内存设置在了D盘导致无法删除卷&#xff0c;这里只需要将虚拟内存放到其他盘&#xff0c;如E盘即可…...

NumPy 中级教程——广播(Broadcasting)

Python NumPy 中级教程&#xff1a;广播&#xff08;Broadcasting&#xff09; 在 NumPy 中&#xff0c;广播是一种强大的机制&#xff0c;它允许不同形状的数组在进行操作时&#xff0c;自动进行形状的调整&#xff0c;使得它们能够完成一致的运算。广播使得对数组的操作更加…...

python-39-flask+nginx+Gunicorn的组合应用

flask nginx Gunicorn 王炸 1 flasknginxgunicornsupervisor 1.1 myapp.py from flask import Flask app Flask(__name__)app.route("/") def test_link():return "the link is very good"if __name__"__main__":app.run()默认是5000端口…...

C#-CSC编译环境搭建

一.Microsoft .NET Framework 确保系统中安装Microsoft .NET Framework相关版本下载 .NET Framework 4.7 | 免费官方下载 (microsoft.com)https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/net47 二.编译环境搭建 已经集成编译工具csc.exe,归档至gitcode,实现us…...

【JVM】一文掌握JVM垃圾回收机制

作为Java程序员,除了业务逻辑以外,随着更深入的了解,都无法避免的会接触到JVM以及垃圾回收相关知识。JVM调优是一个听起来很可怕,实际上很简单的事。 感到可怕,是因为垃圾回收相关机制都在JVM的C++层实现,我们在Java开发中看不见摸不着;而实际很简单,是因为它说到底,也…...

【AIGC风格prompt】风格类绘画风格的提示词技巧

风格类绘画风格的提示词展示 主题&#xff1a;首先需要确定绘画的主题&#xff0c;例如动物、自然景观、人物等。 描述&#xff1a;根据主题提供详细的描述&#xff0c;包括颜色、情感、场景等。 绘画细节&#xff1a;描述绘画中的细节&#xff0c;例如表情、纹理、光影等。 场…...

vue exceljs json数据转excel

json数据转excel 有时候我们会遇到这样一个需求&#xff0c;就是将数据转成excel下载&#xff0c;这一般都是由后端来处理&#xff0c;使用插件poi轻松搞定。如果只有少量数据&#xff0c;那么能不能避免调用后端接口&#xff0c;前端直接处理呢&#xff1f; 答案是&#xff…...

Navicat for MySQL 创建函数——报错1418

解决方法 1查看是否开启了创建函数的功能 输入下面语句查看是否开启了创建函数的功能 show variables like %func%; 下面为创建函数功能为开启的查询结果 如果不是上面的结果可以用下面的语句修改为开启 set GLOBAL log_bin_trust_function_creatorstrue; //或 set GLOBAL …...

java球队信息管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java Web球队信息管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5…...

设计模式(4)--对象行为(7)--观察者

1. 意图 定义对象间的一种一对多的依赖关系&#xff0c; 当一个对象的状态改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。 2. 四种角色 抽象目标(Subject)、具体目标(Concrete Subject)、抽象观察者(Observer)、 具体观察者(Concrete Observer) 3. 优点 3.1 …...

MySQL所有常见问题

一、事务 定义:一组操作要么全部成功,要么全部失败,目的是为了保证数据最终的一致性 在MySQL中,提供了一系列事务相关的命令: start transaction | begin | begin work:开启一个事务commit:提交一个事务rollback:回滚一个事务事务的ACID 原子性(Atomicity):当前事…...

锐捷交换机配置 SNMP

配置步骤 ( SNMP v2 ) 步骤一 -- 创建共同体(Community) ruijie(config)#snmp-server community test rw # rw 为读和写口令ruijie(config)#snmp-server community public ro # ro 为只读和写口令这里的共同体为“test”,通常只读口令和读写口令单独配置,提升安…...

Windows 10 安装和开启VNCServer 服务

Windows 10 安装和开启VNCServer 服务 登录云服务器 使用本地RDP登录到配置VNCServer服务的Windows10系统的云服务器。 下载VNC Server安装包 打开官网下载VNCServer安装包 URL&#xff1a;https://www.realvnc.com/en/connect/download/vnc/windows/ 安装VNC Server 双击…...

制造业数字鸿沟的终结者:零依赖STL到STEP转换引擎的技术突破与应用实践

制造业数字鸿沟的终结者&#xff1a;零依赖STL到STEP转换引擎的技术突破与应用实践 【免费下载链接】stltostp Convert stl files to STEP brep files 项目地址: https://gitcode.com/gh_mirrors/st/stltostp 在数字化制造与工业4.0的浪潮中&#xff0c;制造业企业面临着…...

WandEnhancer技术解密:如何通过本地化增强重新定义游戏修改体验

WandEnhancer技术解密&#xff1a;如何通过本地化增强重新定义游戏修改体验 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否曾经面对游戏修改工具…...

通达信数据解析终极指南:mootdx让金融数据获取变得如此简单

通达信数据解析终极指南&#xff1a;mootdx让金融数据获取变得如此简单 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在金融数据分析和量化交易的世界里&#xff0c;获取准确、完整的市场数据是…...

5分钟快速上手:使用res-downloader实现视频号批量下载的终极指南

5分钟快速上手&#xff1a;使用res-downloader实现视频号批量下载的终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader …...

别再只盯着CSI-2了!用示波器实测MIPI D-PHY波形,手把手教你排查Camera不通的硬件问题

别再只盯着CSI-2了&#xff01;用示波器实测MIPI D-PHY波形&#xff0c;手把手教你排查Camera不通的硬件问题 调试Camera模块时&#xff0c;MIPI信号问题往往是硬件工程师最头疼的挑战之一。当系统出现图像异常、花屏或无法识别时&#xff0c;大多数工程师的第一反应是检查CSI-…...

【2026最新】鸿蒙NEXT ArkUI实战:培训班管理系统UI界面开发全攻略

鸿蒙UI开发总是踩坑&#xff1f;ArkUI组件用法记不住&#xff1f;本文用15分钟带你彻底搞懂ArkUI核心组件、布局系统、自定义组件和交互动画&#xff0c;附完整培训班管理系统实战代码和踩坑记录&#xff0c;让你的鸿蒙App界面从此丝滑流畅&#xff01;一、培训班管理界面设计1…...

OpenClawTuto:从零构建高可靠GUI自动化脚本的工程实践指南

1. 项目概述与核心价值 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“OpenClawTuto”。光看名字&#xff0c;你可能会有点懵&#xff0c;这“OpenClaw”是啥&#xff1f;是开源爪子&#xff1f;还是某种工具&#xff1f;其实&#xff0c;这是一个围绕“OpenClaw”这个…...

基于RAG与向量数据库的智能信息管理系统(IIMS)架构与实现

1. 项目概述&#xff1a;当AI成为你的“第二大脑”最近在折腾一个挺有意思的项目&#xff0c;叫“IIMS-By-AI”。乍一看这个标题&#xff0c;可能有点摸不着头脑&#xff0c;但拆解一下就能明白它的野心&#xff1a;IntelligentInformationManagementSystem&#xff0c; By AI。…...

AI 能不能教孩子提问

AI 能不能教孩子提问 家长更该警惕的场景是&#xff1a;孩子一遇到卡点&#xff0c;就把题拍给 AI&#xff0c;等一个完整答案&#xff0c;然后连自己卡在哪里都说不出来。 这和用不用 AI 关系没那么简单。真正伤人的地方在于&#xff1a;孩子把困惑表达、假设尝试、错误修正这…...

APK安装器终极指南:3种方法让Windows电脑秒变安卓设备

APK安装器终极指南&#xff1a;3种方法让Windows电脑秒变安卓设备 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK安装器是一款专为Windows用户设计的安卓应用安装工…...