【Yolov5】保姆级别源码讲解之-模型训练部分train.py文件

news2024/9/24 6:51:45

本次讲解yolov5训练类train.py

  • 1.主函数
  • 2.main函数
    • 2.1 第一部分 进行校验
    • 2.2 第二部分 配置resume参数用于中断之后进行训练
    • 2.3第三部分 DDP mode
    • 2.4 第四部分
  • 3.训练结果

1.主函数

  • opt参数部分和main方法
    在这里插入图片描述
  • weights:权重文件路径
    – cfg:存储模型结构的配置文件 制定的网络模型配置文件
  • data:存储训练、测试数据的文件
  • hyp 定义了网络训练需要的一些参数,比如学习率等配置信息,具体可以查看data/hyps下的hyp.scratch-low.yaml文件
  • epochs:指的就是训练过程中整个数据集将被迭代多少次,显卡不行你就调小点。 所有的数据送入网络中, 完成了一次前向计算 + 反向传播的过程
  • batch-size:一次看完多少张图片才进行权重更新,梯度下降的mini-batch,显卡不行你就调小点。
  • img-size:输入图片宽高,显卡不行你就调小点。
  • rect:进行矩形训练
  • resume:恢复最近保存的模型开始训练 训练中断可以配置此参数进行链接运算
  • nosave:仅保存最终checkpoint
  • notest:仅测试最后的epoch
  • evolve:进化超参数
  • bucket:gsutil bucket
  • cache-images:缓存图像以加快训练速度
  • name: 重命名results.txt to results_name.txt
  • device:cuda device, i.e. 0 or 0,1,2,3 or cpu
  • adam:使用adam优化
  • multi-scale:多尺度训练,img-size +/- 50%
  • single-cls:单类别的训练集
    在这里插入图片描述

2.main函数

  • 四个全局变量
  • RANk主要是做分布式训练使用的
  • WORLD_SIZE获取一个环境变量,如果它不存在,则返回None。可选的第二个参数可以指定备用默认值。key、default和结果为str。
  • GIT_INFO检测git下的yolov5的更新信息
    在这里插入图片描述在这里插入图片描述

2.1 第一部分 进行校验

在这里插入图片描述

2.2 第二部分 配置resume参数用于中断之后进行训练

在这里插入图片描述

2.3第三部分 DDP mode

  • 选择cpu训练还是Gpu训练
  • 如果配置了分布式训练就需要额外进行配置
    在这里插入图片描述

2.4 第四部分

  • 训练部分
    在这里插入图片描述

  • 第一部分 产生两个权重文件,权重文件是
    在这里插入图片描述

  • 第二部分 超级参数 Hyperparameters
    在这里插入图片描述

  • 第三部分 保存的运行设置
    在这里插入图片描述

  • 第四部分 loogger信息设置
    在这里插入图片描述

  • 第五部分 配置部分
    在这里插入图片描述

  • 第六部分 model 检查训练权重
    在这里插入图片描述

  • 第六部分 控制训练的层,可以调整参数,从对应的第几层开始进行训练
    在这里插入图片描述

  • 第七部分 设置图片的大小
    在这里插入图片描述

  • 第八部分 batch的大小
    在这里插入图片描述

  • 第九部分 配置优化器
    在这里插入图片描述

  • 第十部分 调度程序 ,lf为学习率因子
    在这里插入图片描述

  • 第十一部分 保持模型state_dict(参数和缓冲区)中所有内容的移动平均值
    在这里插入图片描述

  • 第十二部分 恢复训练 Resume
    在这里插入图片描述

  • 第十三部分 多卡训练训练
    在这里插入图片描述

  • 第十四部分 同步批处理
    在这里插入图片描述

  • 第十五部分 Trainloader
    在这里插入图片描述

  • 第十六部分 校验loader
    在这里插入图片描述

  • 第十七部分 分布式训练DDP mode
    在这里插入图片描述

  • 第十八部分 模型数据封装到model类 Model attributes
    在这里插入图片描述

  • 第十九部分 开始训练Start training 循环调用
    在这里插入图片描述

  • 第二十部分 结束训练
    在这里插入图片描述

3.训练结果

在这里插入图片描述

  • x和y表示标注框,深度越深表示标注的点越多
  • heitht和width是代码标注的数据的位置

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

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

相关文章

解决AAC音频编码时间戳的计算问题

1.主题音频是流式数据,并不像视频一样有P帧和B帧的概念。就像砌墙一样,咔咔往上摞就行了。一般来说,AAC编码中生成文件这一步,如果使用的是OutputStream流写入文件的话,就完全不需要计算时间。但在音视频同步或者使用A…

pytorch入门3--线性回归以及许多python,pytorch函数的用法

先补充一些知识点,这里不一定用得到,后面的学习过程中可能用得到。 1.batch表示批量,就是一批数据集的意思; 2.batch_size表示数据集(样本集、训练集)的大小(数据的个数)&#xff1b…

进程与线程的区别

进程和线程 进程 一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。 线程 进程中的一个执行任务(控制单元)&#xf…

深入理解跳表及其在Redis中的应用

前言跳表可以达到和红黑树一样的时间复杂度 O(logN),且实现简单,Redis 中的有序集合对象的底层数据结构就使用了跳表。其作者威廉普评价:跳跃链表是在很多应用中有可能替代平衡树的一种数据结构。本篇文章将对跳表的实现及在Redis中的应用进行…

蓝桥杯:染色时间

蓝桥杯:染色时间https://www.lanqiao.cn/problems/2386/learning/?contest_id80 问题描述 输入格式 输出格式 样例输入输出 样例输入 样例输出 评测用例规模与约定 解题思路:优先队列 AC代码(Java): 问题描述 小蓝有一个 n 行 m 列…

华为OD机试题,用 Java 解【任务混部】问题

最近更新的博客 华为OD机试题,用 Java 解【停车场车辆统计】问题华为OD机试题,用 Java 解【字符串变换最小字符串】问题华为OD机试题,用 Java 解【计算最大乘积】问题华为OD机试题,用 Java 解【DNA 序列】问题华为OD机试 - 组成最大数(Java) | 机试题算法思路 【2023】使…

本地docker部署mysql,IDEA直连实战

1、安装mysql镜像 前文中我们安装了docker和redis镜像,并在idea中成功连接,现在安装mysql镜像 docker pull mysql ,默认最新版本 ps:可以参考https://www.runoob.com/docker/docker-install-mysql.html 2、启动mysql 打开powershell&…

快速掌握 Flutter 图片开发核心技能

大家好,我是 17。 在 Flutter 中使用图片是最基础能力之一。17 做了精心准备,满满的都是干货!本文介绍如何在 Flutter 中使用图片,尽量详细,示例完整,包会! 使用网络图片 使用网络图片超级简…

【035】基于java的进销库存管理系统(Vue+Springboot+Mysql)前后端分离项目,附万字课设论文

1.3 系统实现的功能 本次设计任务是要设计一个超市进销存系统,通过这个系统能够满足超市进销存系统的管理及员工的超市进销存管理功能。系统的主要功能包括:首页、个人中心、员工管理、客户管理、供应商管理、承运商管理、仓库信息管理、商品类别管理、 …

【知识图谱】架构-特点-缺点简介

架构物联网、云计算、人工智能等新一代信息技术的迅猛发展,带来了制造业的新一轮突破,推动着制造系统向智能化方向发展,驱动着未来制造模式的创新。其中数据和知识是实现制造业与新一代信息技术融合的基础,是实现智能制造的保障。…

PyQt5(二) python程序打包成.exe文件

目录一、安装 **pyinstaller**二、pyinstaller 打包2.1 pyinstaller 打包机制参考链接前言我们在 pycharm 上写的程序在发送到一台没有安装 python 解释器的机器上是不能运行的,甚至还要安装程序中所使用的第三方包,这样极其不方便。 但是 PC 是可以直接…

【C++】哈希——unordered系列容器|哈希冲突|闭散列|开散列

文章目录一、unordered系列关联式容器二、哈希概念三、哈希冲突四、哈希函数五、解决哈希冲突1.闭散列——开放定址法2.代码实现3.开散列——开链法4.代码实现六、结语一、unordered系列关联式容器 在C98中,STL提供了底层为红黑树结构的一系列关联式容器&#xff0c…

MySQL 横表和竖表相互转换

一 竖表转横表 1. 首先创建竖表 create table student ( id varchar(32) primary key, name varchar (50) not null, subject varchar(50) not null, result int); 2. 插入数据 insert into student (id, name, subject, result) values (0001, 小明, 语文, 83); insert into…

RK系列(RK3568) 收音机tef6686芯片驱动,i2c驱动

SOC:RK3568模块:tef6686系统:Android121.首先目前tef6686只有单片机才有驱动,Linux要集成只需要控制模块内部的i2c地址的顺序从github下载tef6686 Andruino的代码 https://github.com/tehniq3/TEF6686解压进入TEF6686-master\TEF6686_1602i2c…

华为OD机试用Python实现 -【任务混部】(2023-Q1 新题)

华为OD机试题 华为OD机试300题大纲任务混部题目输入输出示例一输入输出说明示例二输入输出说明备注Code代码编写思路华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/ca…

Google Guice 5:AOP

1. AOP 1.1 实际开发中面临的问题 在实际开发中&#xff0c;经常需要打印一个方法的执行时间&#xff0c;以确定是否存在慢操作 最简单的方法&#xff0c;直接修改已有的方法&#xff0c;在finnally语句中打印耗时 Override public Optional<Table> getTable(String da…

中级嵌入式系统设计师2014下半年下午试题与答案解析

中级嵌入式系统设计师2014下半年下午试题与答案解析 试题一 阅读下列说明和图,回答下列问题。 [说明] ATM自动取款机系统是一个由终端机、ATM系统、数据库组成的应用系统,具有提取现金、查询账户余额、修改密码及转账等功能。ATM自动取款机系统用例图如图1所示。

win11开始菜单增强工具:StartAllBack

StartAllBack是一款Windows11开始菜单增强工具&#xff0c;在任务栏上为Windows 11恢复经典样式的Windows 7主题风格开始菜单&#xff0c;主要功能包括&#xff1a;恢复和改进开始菜单样式、个性化任务栏、资源管理器等功能。软件功能恢复和改进任务栏在任务图标上显示标签调整…

【Spring】通过JdbcTemplate实现CRUD操作

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ 通过JdbcTemplate实现 增删查改一、添加相关依…

python-下载某短视频平台视频(高清无水印)

python-下载某短视频平台音视频&#xff08;高清无水印&#xff09;前言1、获取视频 url2、发送请求3、数据解析4、本地保存5、完整代码前言 1、Cookie中文名称为小型文本文件&#xff0c;指某些网站为了辨别用户身份而储存在用户本地终端&#xff08;Client Side&#xff09;…