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

    文章

    3229

    浏览量

    48813
  • 深度学习
    +关注

    关注

    73

    文章

    5500

    浏览量

    121118

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

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

收藏 人收藏

    评论

    相关推荐

    AMD获得一项玻璃基板技术专利

    近日,处理器大厂AMD宣布获得了一项涵盖玻璃芯基板技术的专利(专利号“12080632”),这消息标志着AMD在高性能系统级封装(SiP)领域的研究取得了重要进展。
    的头像 发表于 12-02 10:33 179次阅读

    手册上新 |迅为RK3568开发板NPU例程测试

    yolov5目标检测 6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov
    发表于 10-23 14:06

    中国电信人工智能研究院完成首个全国产万卡万模型训练

    近日,中国电信人工智能研究院宣布了一项重大技术突破:成功完成国内首个基于全国产万卡集群训练的万亿参数大模型
    的头像 发表于 09-30 16:41 1683次阅读

    基于迅为RK3588【RKNPU2目实战1】:YOLOV5实时目标分类

    【RKNPU2目实战1】:YOLOV5实时目标分类 https://www.bilibili.com/video/BV1ZN411D7V8/?spm_id_from=333.999.0.0
    发表于 08-15 10:51

    手册上新 |迅为RK3568开发板NPU例程测试

    yolov5目标检测 6.13 yolov5-seg语义分割 6.14 yolov6目标检测 6.15 yolov7目标检测 6.16 yolov
    发表于 08-12 11:03

    YOLOv5的原理、结构、特点和应用

    YOLOv5(You Only Look Once version 5)是种基于深度学习的实时目标检测算法,它属于卷积神经网络(CNN)的范畴。下面我将详细介绍YOLOv5的原理、结构
    的头像 发表于 07-03 09:23 5585次阅读

    基于昇腾AI Yolov7模型迁移到昇腾平台EA500I边缘计算盒子的实操指南

    科技携手昇腾推出了系列边缘计算产品,具备性能强劲、更宽工温、外设接口丰富、利旧性强等特点,同时,得益于昇腾AI软件栈的全面支持,这些产品为各行业AI应用高效、低成本落地提供了强有力的支撑。 YOLOv7是目前YOLO系列目标检测算法的
    的头像 发表于 06-26 17:51 627次阅读
    基于昇腾AI  <b class='flag-5'>Yolov7</b><b class='flag-5'>模型</b>迁移到昇腾平台EA500I边缘计算盒子的实操指南

    【大语言模型:原理与工程实践】大语言模型的预训练

    训练数据时,数量、质量和多样性三者缺不可。 数据的多样性对于大语言模型至关重要,这主要体现在数据的类别和来源两个方面。丰富的数据类别能够提供多样的语言表达特征,如官方知识型数据、口语表达的论坛
    发表于 05-07 17:10

    maixcam部署yolov5s 自定义模型

    部分不样。 获得自定义训练得到的yolov5s onnx模型 准备自定义数据集(博主用的是VOC数据集) 数据集目录结构如下: └─VOC2028:自定义数据集 ├─Annotat
    发表于 04-23 15:43

    NVIDIA即将推出一项新的生成式AI专业认证

    NVIDIA 即将推出一项新的生成式 AI 专业认证,助力开发者在这一重要领域证明自身技术实力。
    的头像 发表于 03-14 09:43 544次阅读

    华为技术近日公开了一项“超声波指纹”专利

    国家知识产权局显示,华为技术有限公司近日公开了一项“超声波指纹”专利,该专利编号为 CN117058725A,申请日为 2023 年 7 月 4 日。
    的头像 发表于 03-12 10:50 962次阅读
    华为<b class='flag-5'>技术</b>近日公开了<b class='flag-5'>一项</b>“超声波指纹”专利

    机器视觉缺陷检测是工业自动领域的一项关键技术

    机器视觉缺陷检测是工业自动领域的一项关键技术
    的头像 发表于 02-22 13:59 529次阅读
    机器视觉缺陷检测是工业自动<b class='flag-5'>化</b>领域的<b class='flag-5'>一项</b>关键<b class='flag-5'>技术</b>

    深入浅出Yolov3和Yolov4

    Yolov3是目标检测Yolo系列非常非常经典的算法,不过很多同学拿到Yolov3或者Yolov4的cfg文件时,并不知道如何直观的可视查看网络
    的头像 发表于 01-11 10:42 781次阅读
    深入浅出<b class='flag-5'>Yolov</b>3和<b class='flag-5'>Yolov</b>4

    在英特尔AI开发板上用OpenVINO NNCF优化YOLOv7

    提高了性能和效率。YOLO算法作为one-stage目标检测算法最典型的代表,其基于深度神经网络进行对象的识别和定位,运行速度很快,可以用于实时系统。YOLOv7 是 YOLO 模型系列的下个演进阶段,在不增加推理成本的情况下
    的头像 发表于 01-05 09:29 747次阅读
    在英特尔AI开发板上用OpenVINO NNCF优化<b class='flag-5'>YOLOv7</b>

    基于YOLOv8实现自定义姿态评估模型训练

    Hello大家好,今天给大家分享下如何基于YOLOv8姿态评估模型,实现在自定义数据集上,完成自定义姿态评估模型的训练与推理。
    的头像 发表于 12-25 11:29 2838次阅读
    基于<b class='flag-5'>YOLOv</b>8实现自定义姿态评估<b class='flag-5'>模型</b>训练