首页 > 其他分享 >torch--yoloV5学习

torch--yoloV5学习

时间:2024-10-11 16:15:52浏览次数:7  
标签:文件 yoloV5 py 配置文件 -- torch ---- yaml yolov5s

  1. 网络可视化工具:netron
netron官方的github链接: https://github.com/lutzroeder/netron
netron对pt格式的权重文件兼容性不好,直接使用netron工具打开,无法显示整个网络

可以使用yolo 代码中models/export.py脚本将pt权重文件转换为onnx格式,再用netron工具打开,就可以看yolo v5网络的整体架构。

导出ONNX文件
pip install onnx>=1.7.0
pip install coremltools==4.0

python models/export.py --weights weights/yolov5s.pt --img 640 --batch 1

转换后的权重onnx文件路径: weights/yolov5s.onnx

打开https://github.com/lutzroeder/netron
![](/i/l/?n=24&i=blog/3437857/202410/3437857-20241007121311098-414529444.png)
点击红框,打开权重文件yolov5s.onnx即可看到网络结构

  1. yolov5灵活配置不同复杂度的模型
![](/i/l/?n=24&i=blog/3437857/202410/3437857-20241011133845195-1104693097.png)

  1. yolov5坐标格式

3.1 xyxy2xywh格式

xy,xy 分别为左上角和右下角坐标x,y值转化为中心点格式

x = x_center/width
y = y_center/height
w = (xmax - xmin)/width
h = (ymax - ymin)/height

3.2 xywh2xyxy格式

将中心点格式数据转化为xy,xy 分别为左上角和右下角坐标x,y值

4、目录结构

----yolov5-3.1\
    |----detect.py        # 检测脚本
    |----hubconf.py       # PyTorch Hub相关代码
    |----LICENSE          # 版权文件
    |----README.md        # README markdown文件
    |----requirements.txt # 项目所需的安装包列表
    |----sotabench.py     # COCO数据集测试脚本
    |----train.py         # 模型训练脚本
    |----test.py          # 模型测试脚本
    |----tutorial.ipynb   # Jupyter Notebook演示代码
    |----data\
    |    |----coco.yaml           # COCO数据集配置文件
    |    |----coco128.yaml        # COCO128数据集配置文件
    |    |----hyp.finetune.yaml   # 超参数微调配置文件
    |    |----hyp.scratch.yaml    # 超参数起始配置文件
    |    |----voc.yaml            # VOC数据集配置文件
    |    |----scripts\
    |    |    |----get_coco.sh  # 下载COCO数据集shell命令
    |    |    |----get_voc.sh   # 下载VOC数据集shell命令
    |----inference\
    |    |----images    # 示例图片文件夹
    |    |    |----bus.jpg
    |    |    |----zidane.jpg
    |    |----output    # output输出文件
    |----models\
    |    |----common.py          # 模型组件定义代码
    |    |----experimental.py    # 实验性质的代码
    |    |----export.py          # 模型导出脚本
    |    |----yolo.py            # Detect及Model构建代码
    |    |----yolov5l.yaml       # yolov5l网络模型配置文件
    |    |----yolov5m.yaml       # yolov5m网络模型配置文件
    |    |----yolov5s.yaml       # yolov5s网络模型配置文件
    |    |----yolov5x.yaml       # yolov5x网络模型配置文件
    |    |----hub\    #
    |    |    |----yolov3-spp.yaml
    |    |    |----yolov5-fpn.yaml
    |    |    |----yolov5-panet.yaml
    |----weights\    # 权重文件夹
    |    |----yolov5l.pt       # yolov5l权重文件
    |    |----yolov5m.pt       # yolov5m权重文件
    |    |----yolov5s.pt       # yolov5s权重文件
    |    |----yolov5x.pt       # yolov5x权重文件
    |----utils\
    |    |----activations.py     # 激活函数定义代码
    |    |----datasets.py        # dataset及Dataloader定义代码
    |    |----evolve.sh          # 超参数进化命令
    |    |----general.py         # 项目通用函数代码
    |    |----google_utils.py    # 谷歌云使用相关代码
    |    |----torch_utils.py     # 辅助程序代码
    |    |----google_app_engine\
    |    |    |----additional_requirements.txt
    |    |    |----app.yaml
    |    |    |----Dockerfile
    |----VOC\    # 数据集目录
    |    |----images\
    |    |    |----train\     # 训练集图片文件夹
    |    |    |----val\       # 验证集图片文件夹
    |    |----labels\         # 数据集标签目录
    |    |    |----train.cache   # 训练缓存文件
    |    |    |----val.cache     # 验证缓存文件
    |    |    |----train\     # 训练集标签
    |    |    |----val\       # 验证集标签


断点续训

标签:文件,yoloV5,py,配置文件,--,torch,----,yaml,yolov5s
From: https://www.cnblogs.com/jackchen28/p/18449891

相关文章

  • 实验二
    实验一:源代码:1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55#defineN13976#defineN24767#defineN3218intmain(){9intcnt;10intrandom_major,random_no;11srand(time(NULL));12......
  • 2024.10.11总结
    本文于github博客同步更新最简单但挂分最惨的一集。唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了唐死我了......
  • Flutter可滚动组件(1):Sliver
    一、常见滚定组件Flutter提供了多种滚动组件,可以用于处理各种滚动效果。Sliver的子组件都能滚动,但并不是所有能滚动的组件都是Sliver子组件。比如,ListView和Grid就不是Sliver子组件。重要说3遍ListView和Grid就不是Sliver子组件。ListView和Grid就不是Sliver子组件。......
  • Flutter容器(6):页面骨架(Scaffold)
    Material组件库提供了丰富多样的组件,这里介绍一下最常用的Scaffold组件,其余的读者可以自行查看文档或FlutterGallery中Material组件部分的示例。注意:FlutterGallery是Flutter官方提供的FlutterDemo,源码位于flutter源码中的examples目录下,笔者强烈建议用户将F......
  • Flutter可滚动组件(5):PageView与页面缓存
    一、PageView如果要实现页面切换和Tab布局,我们可以使用PageView组件。需要注意,PageView是一个非常重要的组件,因为在移动端开发中很常用,比如大多数App都包含Tab换页效果、图片轮动以及抖音上下滑页切换视频功能等等,这些都可以通过PageView轻松实现。PageView({Key?......
  • Flutter可滚动组件(4):GridView
    网格布局是一种常见的布局类型,GridView组件正是实现了网格布局的组件,下面重点介绍一下它的用法。一、默认构造函数GridView可以构建一个二维网格列表,其默认构造函数定义如下:GridView({Key?key,AxisscrollDirection=Axis.vertical,boolreverse=false,......
  • Golang上下文context
    上篇内容我们主要讲解了net/http标准库的使用,其中包含如何创建POST请求、GET请求以及如何携带参数的请求。Context介绍context释义为上下文,在我们使用goroutine时一般使用context来进行元数据的传递,非元数据不建议使用context来进行传递。那么我们主要是用context用来做什么呢?其......
  • Flutter可滚动组件(3):滚动监听及控制
    前一篇博客介绍了Flutter中常用的可滚动组件,也说过可以用ScrollController来控制可滚动组件的滚动位置,本节先介绍一下ScrollController,然后以ListView为例,展示一下ScrollController的具体用法。最后,再介绍一下路由切换时如何来保存滚动位置。一、ScrollControllerScrollContro......
  • Flutter可滚动组件(8):CustomScrollView 和 Slivers
    CustomScrollView前面介绍的ListView、GridView、PageView都是一个完整的可滚动组件,所谓完整是指它们都包括Scrollable、Viewport和Sliver。假如我们想要在一个页面中,同时包含多个可滚动组件,且使它们的滑动效果能统一起来,比如:我们想将已有的两个沿垂直方向滚动的ListView......
  • Flutter可滚动组件(7):TabBarView
    TabBarView是Material组件库中提供了Tab布局组件,通常和TabBar配合使用。一、TabBarViewTabBarView封装了PageView,它的构造方法很简单TabBarView({Key?key,requiredthis.children,//tab页this.controller,//TabControllerthis.physics,this.dra......