返回顶部
首页 > 资讯 > 后端开发 > Python >【yolov5】数据格式、参数、输出结果 分析
  • 918
分享到

【yolov5】数据格式、参数、输出结果 分析

python 2023-09-21 18:09:54 918人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

参考链接 YOLOv5训练结果分析:一个毕设笔记,其中对于每次yolov5 训练运行后的结果解释的不错。 本文内容 yolov5 的数据格式 介绍 yolov5 模型中 train

参考链接

本文内容

    1. yolov5 的数据格式
    1. 介绍 yolov5 模型中 train,py 的相关参数
    1. 介绍输出展示的内容都是什么含义

一、yolov5 的数据格式

1.1 数据格式:label_index,cx, cy,w,h

  • label_index :为标签名称在标签数组中的索引,下标从 0 开始。
  • cx:标记框中心点的 x 坐标,数值是原始中心点 x 坐标除以 图宽 后的结果。
  • cy:标记框中心点的 y 坐标,数值是原始中心点 y 坐标除以 图高 后的结果。
  • w:标记框的 宽,数值为 原始标记框的 宽 除以 图宽 后的结果。
  • h:标记框的 高,数值为 原始标记框的 高 除以 图高 后的结果。
    在这里插入图片描述
    注:其中的实例即为标记框。

1.2 样例

在这里插入图片描述

1.3 数据集的存储格式

在这里插入图片描述

1.4 yolov5 创建图片名称列表的程序

# -*- coding:utf-8 -*-import osdef create_data_list(root_path, is_val='val'):    txt_path = './yolov5_face_'+str(is_val)+'.txt'    img_root_path = os.path.join( os.path.join(root_path, 'images', is_val) )    with open(txt_path, 'w') as f:        for file_name in os.listdir(img_root_path):            if file_name.split('.')[-1]!= 'jpg':                print('文件名称有误 {}'.fORMat(file_name))            img_path = os.path.join(img_root_path, file_name)            line = '{}\n'.format(img_path)            f.writelines(line)### 图片和标签文件存储的根路径root_path = ''create_data_list(root_path, 'train')create_data_list(root_path, 'val')

二、 train.py 中相关参数

自己尝试修改过的参数

  • –weigths: 指的是训练好的网络模型,用来初始化网络权重。为空时从头开始训练
  • –cfg:网络结构配置文件。其中 nc 表示标签数据中有多少类别。
  • –data:数据路径。数据集存储路径结构参考 1.3 部分。
      1. 指向数据存储的根路径,例如训练集:root_path / images / train / ,此路径下存储所有训练数据的图片。
      1. 指向存储图片路径的 txt 文件,txt 文件每一行内容为一张图片的绝对路径。例如:…/ coco / train2017.txt 。
      1. 无论采用两种方式中的哪一种,此配置文件中都指定了 【标签数量】、【标签名称】。
  • –epochs:训练迭代次数
  • –batch-size:每次喂给神经网络的图片数量,一般设置为 2 的 n 次幂。
  • –imgsz:训练图片尺寸。第一个参数为训练集图片的输入尺寸,第二个参数为测试集图片的输入尺寸,需要设置为 32 的倍数(网络进行过程中会进行 32 倍下采样)。
  • –nosave: 只保留最终网络模型。
      1. default = True ,只保留最后一次的训练结果,中间过程的权重文件(.pt)不进行保存。
      1. default = False , 训练过程中产生的权重文件,进行可选择性的保存。
        在这里插入图片描述
  • –notest :是否只在训练完成后,对验证集进行测试。
    • default = True ,只在训练完成后,进行一次测试。
    • default = False ,每一个 epoch 完成后都对验证集进行测试。
      在这里插入图片描述
  • –device:训练网络的设备cpu还是gpu
  • –project:训练结果保存路径。即输出结果 results.txt 、权重文件,存储的根路径。默认名称为 runs。
  • –name: 训练结果保存文件名。在project 对应的文件夹中,默认问 exp (看到一篇文章中说,超过10个之后,会循环覆盖)。
  • –save-period:训练多少次保存一次网络模型。(应该综合 --nosave 同时考虑)
  • –noautoanchor:是否采用锚点检查。
    • 在Yolo算法中,针对不同的数据集,都会有初始设定长宽的锚框。
      在网络训练中,网络在初始锚框的基础上输出预测框,进而和真实框groundtruth进行比对,计算两者差距,再反向更新,迭代网络参数。
      因此初始锚框也是比较重要的一部分,比如Yolov5在Coco数据集上初始设定的锚框:
  • 但Yolov5中将此功能嵌入到代码中,每次训练时,自适应的计算不同训练集中的最佳锚框值。当然,如果觉得计算的锚框效果不是很好,也可以在代码中将自动计算锚框功能关闭。
  • 控制的代码即train.py中上面一行代码,设置成False,每次训练时,不会自动计算。

以下参数还未尝试修改。

参考链接https://blog.csdn.net/weixin_42638415/article/details/120799608

  • –hyp: 训练网络的一些超参数设置

  • –rect: 是否采用矩形训练

  • –resume: 指定你之前训练的网络模型,是否从最近的上一个模型开始训练。

  • –evolve:是否寻找最优参数

  • –bucket:gsutil bucket

  • –cache:是否对图片进行缓存,加快训练

  • –image-weights:测试过程中,图像的那些测试地方不太好,对这些不太好的地方加权重

  • –multi-scale:图片尺度变换

  • –single-cls:训练数据集是单类别还是多类别

  • –adam:是否采用adam

  • –sync-bn:分布式训练

  • –local_rank:DDP参数,请勿修改。

  • –workers: 多线程训练,设置最多多少个线程同时进行分布式的训练。个人理解,线程之间的交互也会耗时。

  • –entity :W&B entity

  • –exist-ok: 覆盖掉上一次的结果,不新建训练结果文件

  • –quad:在dataloader时采用什么样的方式读取我们的数据

  • –linear-lr:按照线性的方式去调整学习

  • –label-smoothing: 对标签平滑,防止过拟合

  • –upload_dataset:Upload dataset as W&B artifact table

  • –bbox_interval:Set bounding-box image logging interval for W&B

三、输出结果分析

3.1 训练时,屏幕中的输出结果

在这里插入图片描述

3.2 log文件,results.txt 文件中的内容分析

参考链接Https://blog.csdn.net/thy0000/article/details/125281995
在这里插入图片描述

  • results.txt中最后三列是验证集结果,前面的是训练集结果。
  • 训练次数,GPU消耗,边界框损失,目标检测损失,分类损失,total,targets,图片大小,P,R,mAP@.5, mAP@.5:.95, 验证集val Box, 验证集val obj, 验证集val cls

四、其他较好的图解

在这里插入图片描述在这里插入图片描述

来源地址:https://blog.csdn.net/qq_32342205/article/details/127634655

--结束END--

本文标题: 【yolov5】数据格式、参数、输出结果 分析

本文链接: https://lsjlt.com/news/414415.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【yolov5】数据格式、参数、输出结果 分析
    参考链接 YOLOv5训练结果分析:一个毕设笔记,其中对于每次yolov5 训练运行后的结果解释的不错。 本文内容 yolov5 的数据格式 介绍 yolov5 模型中 train...
    99+
    2023-09-21
    python
  • YOLOv5怎么以txt或json格式输出预测结果
    这篇“YOLOv5怎么以txt或json格式输出预测结果”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“YOLOv5怎么以tx...
    99+
    2023-07-05
  • Python(21)json.dumps()使用indent参数 格式化输出json数据格式
    json.dumps() 方法 将一个Python数据结构转换为JSON字符串 import jsondata = [{"name":"张","age":20},{"name":"王","age":2...
    99+
    2023-09-02
    python json 开发语言
  • PHP如何将数据库查询结果输出为json格式
    直接上实例代码 <php header("Content-type:text/html;charset=utf-8");//字符编码设置 $servername = "...
    99+
    2024-04-02
  • PHP输出JSON格式数据方式
    目录PHP输出JSON格式数据PHP直接输出JSON数据总结PHP输出JSON格式数据 常用框架封装好的方法来输出JSON数据,但是手动去书写的时候却遇到了问题,因为输出的数据类型为...
    99+
    2023-02-18
    PHP输出JSON格式 PHP输出JSON数据 PHP输出数据
  • C++ stringstream格式化输出输入分析
    这篇文章主要讲解了“C++ stringstream格式化输出输入分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C++ stringstream格式化输出输入分析”吧!目录最近在笔试时经...
    99+
    2023-06-25
  • python3美化表格数据输出结果的实现代码
    技术背景 在前面一篇博客中我们介绍过关于python的表格数据处理方案,这其中的工作重点就是对表格类型的数据进行梳理、计算和展示,本文重点介绍展示这个方面的工作。首先我们看一个案例,...
    99+
    2024-04-02
  • python数据类型,格式话输出
     一.程序交互 name = input(“你的名字是:”) #用户输入,输入的任何东西都存储成str(字符串类型)的形式二.注释的重要性  以后动辄几千行代码的时候,回过头再去看的时候,发现自己都看不懂了,在工作中还会大家一起合作完成...
    99+
    2023-01-30
    数据类型 格式 python
  • SQL Plus输出结果的格式化(linesize、pagesize)
    描述:SQL Plus可以执行数据库的一些操作,就像使用其他数据库工具一样,但是SQL Plus有一个缺点就是输出结果的格式化不尽人意。      ...
    99+
    2024-04-02
  • Pytorch-LSTM输入输出参数方式
    目录1.Pytorch中的LSTM中输入输出参数2.输入数据(以batch_first=True,单层单向为例)3.输入数据(以batch_first=True,双层双向)Pytor...
    99+
    2024-04-02
  • Python如何根据输入参数计算结果
    本篇内容介绍了“Python如何根据输入参数计算结果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!说明define function,cal...
    99+
    2023-06-20
  • Python怎么根据输入参数计算结果
    本篇内容主要讲解“Python怎么根据输入参数计算结果”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么根据输入参数计算结果”吧!说明define function,calculat...
    99+
    2023-06-20
  • c++输入数据后怎么得出结果
    c++kquote>从 c++ 程序中输入数据并得到结果需要以下步骤:1. 定义变量;2. 使用 cin 获取用户输入;3. 处理输入数据;4. 使用 cout 显示结果。例如,计...
    99+
    2024-04-22
    c++
  • python可以美化表格数据输出结果的两个工具
    目录前言1.使用tabulate美化表格输出2.使用prettytable美化输出总结前言 在用python处理表格数据中,这其中的工作重点就是对表格类型的数据进行梳理、计算和展示,...
    99+
    2024-04-02
  • PHP+MySQL怎么查询数据并将结果作为表格输出
    PHP是一种流行的服务器端脚本语言,可以用来创建动态网页。使用PHP时,可以使用MySQL数据库存储数据,并且使用SQL来查询数据。在本文中,我们将看到如何使用PHP从MySQL数据库中查询数据并将结果作为表格输出。准备工作在开始之前,我们...
    99+
    2023-05-14
  • Python中怎么根据输入参数计算结果
    本篇文章给大家分享的是有关Python中怎么根据输入参数计算结果,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、问题描述define function,calculate t...
    99+
    2023-06-20
  • python可以美化表格数据输出结果的工具是什么
    本文小编为大家详细介绍“python可以美化表格数据输出结果的工具是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“python可以美化表格数据输出结果的工具是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧...
    99+
    2023-07-02
  • C++ 函数调试详解:如何分析函数的输入和输出参数?
    函数调试时,分析输入参数包括:类型匹配、范围、值和边值检查。输出参数分析包含:返回类型验证、指针有效性、引用有效性、值验证等。实战案例演示了如何测试输入和输出参数的有效性,帮助理解代码错...
    99+
    2024-05-03
    c++ 函数调试 编译错误
  • php怎么查询数据库输出查询结果
    PHP是一种流行的编程语言,常常被用于服务器端的开发。在PHP开发中,最常见的操作之一是查询数据库,因为多数网站都需要从数据库中读取数据并将其呈现给用户。在查询数据库时,开发人员通常需要输出查询语句,以便于调试和排错。本文将详细介绍PHP查...
    99+
    2023-05-14
    php 数据库
  • php如何查询数据库输出查询结果
    这篇文章主要讲解了“php如何查询数据库输出查询结果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何查询数据库输出查询结果”吧!连接数据库在开始查询数据库之前,需要先连接到数据库。在...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作