0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

解析yolov7采用的一项技术:模型结构重参化

博世苏州 来源:博世苏州 作者:博世苏州 2022-08-09 14:27 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Yolov7问世,刷新了目标检测内卷的新上限!小博此次携手博世AI大神Zlex做一次解析。今天,我们不准备解析yolov7,而是解析yolov7采用的一项技术:模型结构重参化。

首先,这要从古老的vgg说起,很久很久以前神经网络还没有很多花样的时候,他是一个以卷积为主串联的网络结构,如下图所示:

3a51761a-179c-11ed-ba43-dac502259ad0.png

3a5ec388-179c-11ed-ba43-dac502259ad0.png

由于见证了神经网络的神奇效果,科学家工程师们前仆后继开发了resnet, inception net, 以及自学习产生的efficientnet等等以结构创新为主的系列,以及归一化系列(ln,bn,gn,in),激活函数系列, 卷积系列等各种新的计算层,还有各种损失函数层等等。

随着思维的展开,除了从计算方法(数学推理角度)和网络结构(实验性创新角度)层面创新,还有哪些脑洞可以打开呢?是否可以实现数学和网络结构方面的互相转化?答案是肯定的,数学推算和结构设计之间是可以相互转化的。

而模型结构重参化就是其中一种。

01

模型结构重参化

模型结构重参化是继承了深度学习的特性,并作为思考点而展开的,也就是训练(train)和推断(deploy)分别思考的策略,通常我们是可以忍受训练速度较慢,但是推理更加快速的部署方案。

基于这个现实的考虑,是否可能通过增加训练的复杂度但不增加推断运行的时间,从而达到模型能力的提升?

其实这一切都经不起科学家的推敲,这种思路的可行性答案也是肯定的,其实在很久之前的部署加速技巧—— Conv、BN、Relu 三个层融合(大部分情况是conv和bn融合)也是发现了——训练和部署可以在网络结构不同的情况下实现效果等价,这个数学公式等价变换思路。而tensorRT等部署加速方案也都融合了这项技术。

模型结构重参化(structural re-parameterization)是丁霄汉近年来提出的一种通用深度学习模型设计方法论。该方法论首先指出了构造一系列用于训练的结构,并将其结构等价转换为另一种用于测试的结构,也就是训练和测试的结构不再相同,但是效果等效。

该理论是假设在训练资源相对丰富的条件下,在不降低推理能力的前提下又能达到提速的目的。因此训练时的模型可以足够复杂,且具备优秀的性质。而转换得到的推理时模型可以简化,但能力不会减弱,也就是实现无损压缩。

为什么要以vgg为例,而不是以目前各种先进复杂的结构为例解析这一设计呢?其原因在于:模型结构复杂提升了精度,但不利于硬件的各种并行加速计算。但vgg这种单一的结构更容易做很多的变形和加速操作,Repvgg就是基于vgg网络的模型结构重参化。

论文中对比了resnet的参差结构和rep结构的不同,以及训练和推理网络如何转化,如下图所示:

3a80dd74-179c-11ed-ba43-dac502259ad0.png

以上设计方法论基于的数学关系是:

(i+c+b)*w=i*w + c*w + b*w的等式理论。

该等式画成结构图是:

3a988cda-179c-11ed-ba43-dac502259ad0.png

只不过在卷积的世界里,a和b表示的是一个n*n的核;而在一些设计里面,a和b的大小是不一致的。这个时候就需要把现在a和b的维度进行一致性转换,也就是repvgg作者采用的:把1*1的核通过pad的方法补0操作变成3*3的核,达到a、b维度一致。

identity的操作相当于是1*1的单位矩阵卷积pad后就可以转化为3*3的卷积核。还应该值得注意的是:每个卷积后面还跟着bn层,这是就用到了上述提到的conv和bn的融合计算方法。

02

Yolov7在这项技术上的发现和创新

Yolov7中的模型结构重参化做了哪些创新?

Zlex发现Rep的结构策略直接用到resnet等结构的网络中达不到预期效果,分析后发现identity层的使用破坏了resnet的参差结构和densenet的级联结构,因此去掉identity层,采用如下图(g和h)的结构方式有效。

3aa93ab2-179c-11ed-ba43-dac502259ad0.png

03

Yolov7工业应用领域的改善空间

俗话说,极致的项目一般是“既要,也要,还要”的模式——既要推理速度快!也要推理精度高!还要训练速度也不能太慢!

Yolov7无疑是吸收了很多仙气修炼成的佳作,但也存在些许缺点,这些缺点也是该设计本质性的东西,Yolov7的训练速度经过Zlex亲测,比其他yolo系列慢了很多。对于资源有限型的AI爱好者也形成了一定的障碍,单元时间可以跑的实验次数少了很多,验证一些想法的节奏也慢了很多。

Yolov7给博世工业检测、自动驾驶、数字化等领域又注入了新的超能力,应用过程中也会发现这样或者那样的问题,比方说训练资源有限,速度跟不上项目的节奏,能力提升的trick不够适应自己的应用场景,小数据训练效果不佳,不同平台的移植工作量大等等,需要我们博世工程师在适配、融合和改进的路上坚定的前进。

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3882

    浏览量

    52377
  • 深度学习
    +关注

    关注

    73

    文章

    5614

    浏览量

    124812

原文标题:博采众长 | 在提升深度学习模型能力方面的那些魔鬼细节:模型结构重参化

文章出处:【微信号:rbacinternalevents,微信公众号:博世苏州】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    瑞芯微(EASY EAI)RV1126B yolov8训练部署教程

    1.Yolov8简介YOLOv8是ultralytics公司在2023年1月10号开源的基于YOLOV5进行更新的下个重大更新版本,目前支持图像分类、物体检测和实例分割任务,鉴于
    的头像 发表于 05-09 14:44 484次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>yolov</b>8训练部署教程

    瑞芯微(EASY EAI)RV1126B yolov5训练部署教程

    1.Yolov5简介YOLOv5模型是Ultralytics公司于2020年6月9日公开发布的。YOLOv5模型是基于
    的头像 发表于 05-09 14:20 487次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>yolov</b>5训练部署教程

    零基础手写大模型资料2026

    零基础纯代码手写大模型:从数学原理到工程实践的技术解析 在深度学习框架高度封装的今天,理解大模型底层原理的开发者愈发稀缺。本文将剥离复杂框架的依赖,从数学基础出发,
    发表于 05-01 17:44

    是德科技与联发科技联合完成一项工作原型验证

    是德科技(NYSE: KEYS )宣布与联发科技(MediaTek)联合完成一项工作原型验证,推进人工智能(AI)驱动的上行链路优化及下代无线接入网(RAN)模型全生命周期管理技术
    的头像 发表于 03-02 11:15 645次阅读

    研华科技携手森云智能率先完成一项重要技术突破

    近日,研华科技携手AI视觉解决方案领域的全球领导者森云智能,率先完成一项重要技术突破。双方成功将 GMSL 相机集成至基于NVIDIA Jetson Thor平台的 MIC‑742系统中。这
    的头像 发表于 12-25 09:50 534次阅读

    openDACS 2025 开源EDA与芯片赛 赛题七:基于大模型的生成式原理图设计

    ,形成了批具有应用价值的技术成果。本届大赛预计发布50个赛,持续规划1500万元总奖金。 openDACS2025开源EDA与芯片赛,聚焦集成电路产业的数字设计、处理器设计自动
    发表于 11-13 11:49

    使用ROCm™优化并部署YOLOv8模型

    作者:AVNET 李鑫杰 YOLOv8介绍? YOLOv8 由 Ultralytics 于 2023 年 1 月 10 日发布,在准确性和速度方面提供了前沿的性能。YOLOv8 在
    的头像 发表于 09-24 18:32 1130次阅读
    使用ROCm™优化并部署<b class='flag-5'>YOLOv</b>8<b class='flag-5'>模型</b>

    单板挑战4路YOLOv8!米尔瑞芯微RK3576开发板性能实测

    4.YOLOv8s-obb.float 旋转目标检测模型 上面已经看到了单独解析视频时,每模型效果,接下来演示MYD-LR3576通过
    发表于 09-12 17:52

    基于瑞芯微RK3576的 yolov5训练部署教程

    1.Yolov5简介 YOLOv5 模型是 Ultralytics 公司于 2020 年 6 月 9 日公开发布的。YOLOv5 模型是基于
    的头像 发表于 09-11 16:43 3385次阅读
    基于瑞芯微RK3576的 <b class='flag-5'>yolov</b>5训练部署教程

    知行科技机器人业务新获一项合作

    近日,知行科技的机器人业务新获一项合作,国内头部机器人公司委托开发背包式机器人全栈解决方案。
    的头像 发表于 09-03 18:12 1068次阅读

    在K230中,如何使用AI Demo中的object_detect_yolov8n,YOLOV8多目标检测模型

    在K230的AI开发教程文档中,可以看到有源码的AI Demo,其中包括yolov8n模型,在仓库里可以看到源码 我想请问各位大佬,如何使用这个程序?如何更改程序,替换为我自己的数据集和训练后的模型
    发表于 08-07 06:48

    请问yolov8训练模型如何写双线程?

    用yolo8训练的模型做送药小车,看了yolov8的历程,可以使用,但是不知道输出时具体用的是什么通道?我看API发现,是用get_frame()获取帧图片给AI程序使用,但是返回值
    发表于 07-30 06:23

    yolov5训练部署全链路教程

    1.Yolov5简介YOLOv5模型是Ultralytics公司于2020年6月9日公开发布的。YOLOv5模型是基于
    的头像 发表于 07-25 15:22 2156次阅读
    <b class='flag-5'>yolov</b>5训练部署全链路教程

    如何提高yolov8模型在k230上运行的帧率?

    ,display_mode=display_mode)pl.create()# 初始YOLOv8实例yolo=YOLOv8(task_type=\"detect\",mode
    发表于 06-20 06:25

    AI技术加持,宏工科技锂电包装自动化装备新突破

    国家知识产权局信息显示,宏工科技(股票代码:301662)子公司湖南宏工智能科技有限公司申请一项名为“种基于YOLOv8模型的包装袋袋口检测方法”的专利,公开号CN119762423
    的头像 发表于 06-17 09:26 1033次阅读
    AI<b class='flag-5'>技术</b>加持,宏工科技锂电包装自动化装备新突破