一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于结构重参数化的模型推理速度提升方法及装置与流程

2022-06-12 01:49:53 来源:中国专利 TAG:


1.本发明属于卷积神经网络模型技术领域,尤其涉及一种基于结构重参数化的模型推理速度提升方法及装置。


背景技术:

2.卷积神经网络已成为解决许多问题的主流方法。vgg在图像识别方面取得了巨大的成功,但是它仅使用了一个由conv、relu和pooling组成的简单体系结构。随着inception、resnet和densenet的出现,许多研究兴趣转移到了设计良好的体系结构上,使得模型变得越来越复杂。
3.许多复杂的卷积网络比简单的卷积网络提供更高的精度,但缺点也非常显著:(1)复杂的多分支设计虽然使得模型的精度大大的提高,但是复杂的结构使得模型的推理速度相应的大大降低;(2)虽然在现有技术中,通常采用conv层和bn层融合的技术,从而减少网络层,提升推理速度,但是无法将一个像resnet一样的残差连接大层进行融合,因为通常一个conv层都由conv bn relu组成,即根据conv层和bn层融合的技术无法将线性层与非线性层融合,不能提高模型的推理速度。


技术实现要素:

4.本发明提供了一种基于结构重参数化的模型推理速度提升方法及装置,旨在解决上述中复杂的结构使得模型推理速度较低,现有融合技术无法融合像resnet一样的残差连接大层的问题。
5.为了实现上述目的,本技术采用以下技术方案,包括:
6.获取样本数据并按照多分支结构进行训练,得到训练模型,所述训练模型包括残差连接大层,且所述残差连接大层包括1
×
1卷积层和3
×
3卷积层;
7.将所述残差连接大层的非线性层放在所述残差连接大层的最后一层,再根据conv层与bn层融合的技术对所述1
×
1卷积层和所述3
×
3卷积层进行融合,得到卷积融合层并完成所述残差连接大层的融合,以得到结构重参数化的检测模型。
8.作为优选,所述conv层与bn层融合的技术,包括:
9.分别将conv层的表达式conv=wc*x bc和bn层的表达式带入公式y=bn(conv(x))中进行计算,得到第一公式其中x为所述conv层的输入,y为所述conv层的输出,wc为所述conv层的权重,bc为所述conv层的偏置项,γ为所述bn层的缩放系数,β为所述bn层的偏移系数,e为所述bn层的均值,var为所述bn层的方差;
10.对所述第一公式进行变形,得到第二公式所述第
二公式为一元一次方程,完成所述conv层和所述bn层的融合。
11.作为优选,所述将所述残差连接大层的非线性层放在所述残差连接大层的最后一层,再根据conv层与bn层融合的技术对所述1
×
1卷积层和所述3
×
3卷积层进行融合,得到卷积融合层并完成所述残差连接大层的融合,以得到结构重参数化的检测模型,包括:
12.步骤一、将所述残差连接大层的非线性层放在所述残差连接大层的最后一层;
13.步骤二、预设所述残差连接大层的输入为输出为
14.步骤三、当c1=c2,h1=h2,w1=w2时,可得所述输入m1与所述输出m2的关系式为:且所述残差连接大层的权重为所述残差连接大层的偏置为其中表示从1开始,i表示通道,c1为所述残差连接大层的输入通道,c2为所述残差连接大层的输出通道,n是batch_size,h1、w1是输入特征的高和宽,h2,w2是输出特征的高和宽,var
(3)
,e
(3)

(3)

(3)
分别表示3x3 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(1)
,e
(1)

(1)

(1)
分别表示1x1 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(0)
,e
(0)

(0)

(0)
分别表示identity之后的bn的方差、均值、偏置系数、缩放系数,identity表示一个层;
15.步骤四、根据所述步骤一、所述步骤二、所述步骤三可得,所述残差连接大层按照所述conv层与bn层融合的技术可以完成融合。
16.作为优选,所述当c1=c2,h1=h2,w1=w2时,可得所述输入m1与所述输出m2的关系式为:还包括:
17.当所述c1=c2,h1=h2,w1=w2不成立时,所述输入m1与所述输出m2的关系式为m2=bn(conv(m1),var
(3)
,e
(3)

(3)

(3)
) bn(conv(m1*w1),var
(1)
,e
(1)

(1)

(1)
)。
18.作为优选,所述非线性层包括激活函数relu。
19.一种基于结构重参数化的模型推理速度提升装置,包括:
20.模型训练模块:用于获取样本数据并按照多分支结构进行训练,得到训练模型,所述训练模型包括残差连接大层,且所述残差连接大层包括1
×
1卷积层和3
×
3卷积层;
21.结构重参数化的模型生成模块:用于将所述残差连接大层的非线性层放在所述残差连接大层的最后一层,再根据conv层与bn层融合的技术对所述1
×
1卷积层和所述3
×
3卷积层进行融合,得到卷积融合层并完成所述残差连接大层的融合,以得到结构重参数化的检测模型。
22.作为优选,所述结构重参数化的模型生成模块,包括:
23.conv层与bn层第一融合模块:用于分别将conv层的表达式conv=wc*x bc和bn层的表达式带入公式y=bn(conv(x))中进行计算,得到第一公式
其中x为所述conv层的输入,y为所述conv层的输出,wc为所述conv层的权重,bc为所述conv层的偏置项,γ为所述bn层的缩放系数,β为所述bn层的偏移系数,e为所述bn层的均值,var为所述bn层的方差;
24.conv层与bn层第二融合模块:用于对所述第一公式进行变形,得到第二公式所述第二公式为一元一次方程,完成所述conv层和所述bn层的融合。
25.作为优选,所述结构重参数化的模型生成模块,还包括:
26.第一结构重参数化模块:用于步骤一、将所述残差连接大层的非线性层放在所述残差连接大层的最后一层;
27.第二结构重参数化模块:用于步骤二、预设所述残差连接大层的输入为输出为
28.第三结构重参数化模块:用于步骤三、当c1=c2,h1=h2,w1=w2时,可得所述输入m1与所述输出m2的关系式为:且所述残差连接大层的权重为所述残差连接大层的偏置为其中表示从1开始,i表示通道,c1为所述残差连接大层的输入通道,c2为所述残差连接大层的输出通道,n是batch_size,h1、w1是输入特征的高和宽,h2,w2是输出特征的高和宽,var
(3)
,e
(3)

(3)

(3)
分别表示3x3 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(1)
,e
(1)

(1)

(1)
分别表示1x1 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(0)
,e
(0)

(0)

(0)
分别表示identity之后的bn的方差、均值、偏置系数、缩放系数,identity表示一个层;
29.第四结构重参数化模块:用于步骤四、根据所述步骤一、所述步骤二、所述步骤三可得,所述残差连接大层按照所述conv层与bn层融合的技术可以完成融合。
30.一种基于结构重参数化的模型推理速度提升装置,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上述中任一项所述的一种基于结构重参数化的模型推理速度提升方法。
31.一种存储有计算机程序的计算机可读存储介质,所述计算机程序被计算机执行时实现如上述中任一项所述的一种基于结构重参数化的模型推理速度提升方法。
32.本发明具有以下有益效果:
33.(1)本技术方案通过结构参数重构将训练多分支结构和推理结构解耦,即通过参数转换将结构从一个结构转换为另一个结构,例如将1
×
1卷积层和3
×
3卷积层通过结构重参数化,按照conv层与bn层融合的技术方式进行融合,合成一个网络层,即将y=x g(x) f(x)转化为y=h(x),将两个网络层的卷积运算,合为一个网络层的卷积运算,减少网络层,从而减少计算量,提高模型的推理速度;
34.(2)本技术方案中为了解决像resnet一样的残差连接大层的融合问题,采取将大层中的非线性层和线性层分开,因为非线性层和线性层无法融合,所以本方案中将非线性层(relu)放在大层的最后一层,对线性层(conv层、bn层)进行融合,从而完成大层的融合,解决大层不能融合的问题,并且通过融合大层,从而提高了模型的推理速度。
附图说明
35.图1为本发明实施例实现一种基于结构重参数化的模型推理速度提升方法的流程图
36.图2为本发明实施例中一种模型测试结果的示意图
37.图3为本发明实施例实现一种基于结构重参数化的模型推理速度提升装置的结构示意图
38.图4为本发明实施例实现一种基于结构重参数化的模型推理速度提升装置中的结构重参数化的模型生成模块20的结构示意图
39.图5为本发明实施例实现一种基于结构重参数化的模型推理速度提升装置的一种电子设备示意图
具体实施方式
40.下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.本技术的权利要求书和说明书的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本技术的实施例中对相同属性的对象在描述时所采用的区分方式,此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他单元。
42.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同,本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本技术。
43.实施例1
44.如图1所示,一种基于结构重参数化的模型推理速度提升方法,包括以下步骤:
45.s11、获取样本数据并按照多分支结构进行训练,得到训练模型,所述训练模型包括残差连接大层,且所述残差连接大层包括1
×
1卷积层和3
×
3卷积层;
46.s12、将所述残差连接大层的非线性层放在所述残差连接大层的最后一层,再根据conv层与bn层融合的技术对所述1
×
1卷积层和所述3
×
3卷积层进行融合,得到卷积融合层并完成所述残差连接大层的融合,以得到结构重参数化的检测模型。
47.在本实施例中,具体包括:
48.(1)模型训练
49.由于多分支结构的优点都是用于训练,在训练的时候,多分支结构可以提高模型的精度,在本实施例中,选择目标检测模型来举例,首先获取用于目标检测的样本数据,然后按照多分支结构进行样本数据的训练,得到训练模型,训练完成之后,进入模型测试阶段,此时,多分支结构就会导致推理速度变慢,所以要进行结构重参数化,简化结构,融合网络层,提高速度;在目标检测模型中包含有像resnet(残差网络)一样的残差连接大层
50.(2)conv层与bn层融合的技术
51.在现有技术中,为了提高模型的推理速度,常用的就是将conv层与bn层融合,减少网络层,提高推理速度,该技术具体如下:
52.设x是当前conv层(卷积层)的输入,y为所述conv层的输出,wc为conv层的权重,bc为conv层的偏置项,γ是bn层的缩放系数,β是bn层的偏移系数,e为bn层的均值,var为bn层的方差,则每层conv的表达式为:
53.y=bn(conv(x)),
54.conv=wc*x bc,
[0055][0056]
公式合并后变为:
[0057]
该公式即“第一公式”,
[0058]
该公式即“第二公式”,
[0059]
上式中,除x,y之外,都为常数,形式和向量卷积运算一样是一个一元一次方程,所以在推理阶段conv和bn可以进行融合,即线性函数的相加性,它能够使得模型在模型推理时,整体速度提高5-10%;
[0060]
(3)针对“大层”的结构重参数化
[0061]
因为上述(2)中的技术,无法将一个像resnet(残差网络)一样的“残差连接大层”进行融合,因为通常一个conv层都由conv bn relu组成,即线性层无法与非线性层融合,所以采用结构重参数化改进(2)中的技术,进行大层融合,具体如下:
[0062]
例如:resnet每个大层的公式表达如下:
[0063]
y=x g(x) f(x),
[0064]
其中,g(x)是1x1 conv,f(x)就是正常的一系列3x3 conv,本技术方案的结构重参数化的核心就是将y=x g(x) f(x)转化为y=h(x),即将多层网络融合成一个层,因为通常情况下,网络层数少的要比网络层数多的,推理速度更快,为了说明大层的融合,举例如下:
[0065]
设输入每个大层的输入通道为c1,输出通道为c2,则3x3 conv的权重可表示为:
[0066][0067]
1x1 conv的权重可表示为:
[0068][0069]
设var
(3)
,e
(3)

(3)

(3)
分别表示3x3 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(1)
,e
(1)

(1)

(1)
分别表示1x1 conv之后的bn的方差、均值、偏置系数、缩放系数,
var
(0)
,e
(0)

(0)

(0)
分别表示identity之后的bn的方差、均值、偏置系数、缩放系数,identity表示一个层,
[0070]
设输入为输出为其中n是batch_size(批量大小),h1、w1是输入特征的高和宽,h2,w2是输出的高和宽,当c1=c2,h1=h2,w1=w2时,可得所述输入m1与所述输出m2的关系式为:
[0071][0072]
当所述c1=c2,h1=h2,w1=w2不成立时,所述输入m1与所述输出m2的关系式为:
[0073][0074]
且其权重和偏置如下:
[0075][0076]
权重:
[0077]
偏置:
[0078]
在等到输入输出的关系等式,及bn的方差、均值、偏置系数、缩放系数以及整个大层的权重和偏置之后,可以根据(2)中的conv层与bn层融合的技术,将相应的参数和公式带入进行变化,也可以得到跟一样的一元一次方程,即一个卷积的形式,并且上述过程只是对残差连接大层中的线性层(conv层、bn层)进行融合,因为卷积层是由conv bn relu构成,所以将relu非线性层放到本残差连接大层的最后一层,就可以完成该大层的融合。
[0079]
本方案通过在coco2017数据集上训练,最终检测模型的map为39.8,进行int8量化后,在rtx 3080ti上速度达到1.1毫秒,与对标的yolox-s相比,虽然map下降了0.2(yolox-s map=40.0),但速度提升了将近17倍,所以可以认为通过本方案,在模型精度几乎没有变化的情况下(因为0.2%的精度可以忽略不计),速度提升了17倍,有的非常明显的提升,实验结果数据如图2所示。
[0080]
本实施例的有益效果为:
[0081]
(1)本技术方案通过结构参数重构将训练多分支结构和推理结构解耦,即通过参数转换将结构从一个结构转换为另一个结构,例如将1
×
1卷积层和3
×
3卷积层通过结构重参数化,按照conv层与bn层融合的技术方式进行融合,合成一个网络层,即将y=x g(x) f(x)转化为y=h(x),将两个网络层的卷积运算,合为一个网络层的卷积运算,减少网络层,从而减少计算量,提高模型的推理速度;
[0082]
(2)本技术方案中为了解决像resnet一样的残差连接大层的融合问题,采取将大层中的非线性层和线性层分开,因为非线性层和线性层无法融合,所以本方案中将非线性
层(relu)放在大层的最后一层,对线性层(conv层、bn层)进行融合,从而完成大层的融合,解决大层不能融合的问题,并且通过融合大层,从而提高了模型的推理速度。
[0083]
实施例2
[0084]
如图3所示,一种基于结构重参数化的模型推理速度提升装置,包括:
[0085]
模型训练模块10:用于获取样本数据并按照多分支结构进行训练,得到训练模型,所述训练模型包括残差连接大层,且所述残差连接大层包括1
×
1卷积层和3
×
3卷积层;
[0086]
结构重参数化的模型生成模块20:用于将所述残差连接大层的非线性层放在所述残差连接大层的最后一层,再根据conv层与bn层融合的技术对所述1
×
1卷积层和所述3
×
3卷积层进行融合,得到卷积融合层并完成所述残差连接大层的融合,以得到结构重参数化的检测模型。
[0087]
上述装置的一种实施方式为,在模型训练模块10中,获取样本数据并按照多分支结构进行训练,得到训练模型,所述训练模型包括残差连接大层,且所述残差连接大层包括1
×
1卷积层和3
×
3卷积层,在结构重参数化的模型生成模块20中,将所述残差连接大层的非线性层放在所述残差连接大层的最后一层,再根据conv层与bn层融合的技术对所述1
×
1卷积层和所述3
×
3卷积层进行融合,得到卷积融合层并完成所述残差连接大层的融合,以得到结构重参数化的检测模型。
[0088]
实施例3
[0089]
如图4所示,一种基于结构重参数化的模型推理速度提升装置中的结构重参数化的模型生成模块20,包括:
[0090]
conv层与bn层第一融合模块21:用于分别将conv层的表达式conv=wc*x bc和bn层的表达式带入公式y=bn(conv(x))中进行计算,得到第一公式其中x为所述conv层的输入,y为所述conv层的输出,wc为所述conv层的权重,bc为所述conv层的偏置项,γ为所述bn层的缩放系数,β为所述bn层的偏移系数,e为所述bn层的均值,var为所述bn层的方差;
[0091]
conv层与bn层第二融合模块22:用于对所述第一公式进行变形,得到第二公式所述第二公式为一元一次方程,完成所述conv层和所述bn层的融合;
[0092]
第一结构重参数化模块23:用于步骤一、将所述残差连接大层的非线性层放在所述残差连接大层的最后一层;
[0093]
第二结构重参数化模块24:用于步骤二、预设所述残差连接大层的输入为输出为
[0094]
第三结构重参数化模块25:用于步骤三、当c1=c2,h1=h2,w1=w2时,可得所述输入m1与所述输出m2的关系式为:
且所述残差连接大层的权重为所述残差连接大层的偏置为其中表示从1开始,i表示通道,c1为所述残差连接大层的输入通道,c2为所述残差连接大层的输出通道,n是batch_size,h1、w1是输入特征的高和宽,h2,w2是输出特征的高和宽,var
(3)
,e
(3)

(3)

(3)
分别表示3x3 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(1)
,e
(1)

(1)

(1)
分别表示1x1 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(0)
,e
(0)

(0)

(0)
分别表示identity之后的bn的方差、均值、偏置系数、缩放系数,identity表示一个层;
[0095]
第四结构重参数化模块26:用于步骤四、根据所述步骤一、所述步骤二、所述步骤三可得,所述残差连接大层按照所述conv层与bn层融合的技术可以完成融合。
[0096]
上述装置的一种实施方式为,在conv层与bn层第一融合模块21中,分别将conv层的表达式conv=wc*x bc和bn层的表达式带入公式y=bn(conv(x))中进行计算,得到第一公式其中x为所述conv层的输入,y为所述conv层的输出,wc为所述conv层的权重,bc为所述conv层的偏置项,γ为所述bn层的缩放系数,β为所述bn层的偏移系数,e为所述bn层的均值,var为所述bn层的方差,在conv层与bn层第二融合模块22中,对所述第一公式进行变形,得到第二公式所述第二公式为一元一次方程,完成所述conv层和所述bn层的融合,在第一结构重参数化模块23中,步骤一、将所述残差连接大层的非线性层放在所述残差连接大层的最后一层,在第二结构重参数化模块24中,步骤二、预设所述残差连接大层的输入为输出为在第三结构重参数化模块25中,步骤三、当c1=c2,h1=h2,w1=w2时,可得所述输入m1与所述输出m2的关系式为:且所述残差连接大层的权重为所述残差连接大层的偏置为其中表示从1开始,i表示通道,c1为所述残差连接大层的输入通道,c2为所述残差连接大层的输出通道,n是batch_size,h1、w1是输入特征的高和宽,h2,w2是输出特征的高和宽,var
(3)
,e
(3)

(3)

(3)
分别表示3x3 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(1)
,e
(1)

(1)

(1)
分别表示1x1 conv之后的bn的方差、均值、偏置系数、缩放系数,var
(0)
,e
(0)

(0)

(0)
分别表示identity之后的bn的方差、均值、偏置系数、缩放系数,identity表示一个层,在第四结构重参数化模块26中,步骤四、根据所述步骤一、所述步骤二、所述步骤三可得,所述残差连接大层按照所述conv层与bn层融合的技术可以完成融合。
[0097]
实施例4
[0098]
如图5所示,一种电子设备,包括存储器401和处理器402,所述存储器401用于存储
一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器402执行以实现上述的任一一种方法。
[0099]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0100]
一种存储有计算机程序的计算机可读存储介质,所述计算机程序使计算机执行时实现如上述的任一一种方法。
[0101]
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器401中,并由处理器402执行,并由输入接口405和输出接口406完成数据的i/o接口传输,以完成本发明,一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机设备中的执行过程。
[0102]
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可包括,但不仅限于,存储器401、处理器402,本领域技术人员可以理解,本实施例仅仅是计算机设备的示例,并不构成对计算机设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件,例如计算机设备还可以包括输入器407、网络接入设备、总线等。
[0103]
处理器402可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器402、数字信号处理器402(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-program403mablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器402可以是微处理器402或者该处理器402也可以是任何常规的处理器402等。
[0104]
存储器401可以是计算机设备的内部存储单元,例如计算机设备的硬盘或内存。存储器401也可以是计算机设备的外部存储设备,例如计算机设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等,进一步地,存储器401还可以既包括计算机设备的内部存储单元也包括外部存储设备,存储器401用于存储计算机程序以及计算机设备所需的其他程序和数据,存储器401还可以用于暂时地存储在输出器408,而前述的存储介质包括u盘、移动硬盘、只读存储器rom403、随机存储器ram404、碟盘或光盘等各种可以存储程序代码的介质。
[0105]
以上所述仅为本发明的具体实施例,但本发明的技术特征并不局限于此,任何本领域的技术人员在本发明的领域内,所作的变化或修饰皆涵盖在本发明的专利范围之中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献