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

基于模型通道剪枝的图像分析方法和装置与流程

2022-06-05 07:32:35 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种基于模型通道剪枝的图像分析方法和装置。


背景技术:

2.计算机视觉技术在图像和视频分析中取得了巨大的成果。随着移动摄像机的增多,如何实现移动设备在三维空间中的环境感知和自身定位是当前的研究热点,也是制约增强现实、无人车技术大规模商业化的一个难题。通过设计结构更复杂的神经网络虽然具有出色的性能,但因其计算成本高昂,很难在自动驾驶汽车和智能移动终端等计算受限的平台上直接部署这些算力昂贵的网络。
3.在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
4.对于计算能力受限的自动驾驶汽车和智能移动终端等的控制管理平台,如何基于计算机视觉技术更好地进行图像分析,为无人驾驶的安全性和实时性提供技术支持,这是目前亟待解决的技术问题。


技术实现要素:

5.有鉴于此,本发明实施例提供一种基于模型通道剪枝的图像分析方法和装置,能够通过对模型进行剪枝处理得到可以部署于计算能力受限的控制管理平台的剪枝模型,并使用剪枝模型进行图像分析,从而可以将剪枝压缩后的模型应用于无人车控制管理平台上,以更好地进行图像分析,为无人驾驶的安全性和实时性提供了技术支持。
6.为实现上述目的,根据本发明实施例的一个方面,提供了一种基于模型通道剪枝的图像分析方法,包括:
7.为待处理的图像分析模型的每个卷积层分配通道指示器,并通过连续的辅助参数对所述通道指示器进行松弛化处理,得到松弛化的通道指示器,所述通道指示器用于表示所述卷积层的每个通道是否被剪枝;
8.以所述松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道指示器;
9.根据所述期望剪枝的通道指示器对所述待处理的图像分析模型中的通道进行剪枝处理,得到剪枝处理的目标图像分析模型;
10.使用所述目标图像分析剪枝模型进行图像分析。
11.可选地,所述通道指示器为二值化通道指示器,所述连续的辅助参数为基于模拟退火的松弛函数,所述松弛化的通道指示器在高温下呈现连续状态,在低温下逐渐趋向离散态。
12.可选地,所述松弛化的通道指示器为:
[0013][0014]
其中,t是对模型的激活函数增加的温度变量,h
t
(
·
)是基于模拟退火的松弛函数,是松弛化的通道指示器,是松弛化处理前的二值化通道指示器,为辅助参数,l为卷积层在所述待处理的图像分析模型中的层数,且t在模型搜索开始前设定为高温t=t0,随着搜索进行,的温度t会按照退火模式降低。
[0015]
可选地,所述松弛化的通道指示器由所述辅助参数表示,使用可微分的手段搜索得到期望剪枝的通道,包括:通过对模型参数和所述辅助参数进行优化处理以进行可微分搜索,确定每个通道的重要性,将重要性低于设定阈值的通道作为期望剪枝的通道,其中,对模型参数和所述辅助参数进行优化处理包括:使用双层优化的方式,将所述辅助参数作为上层变量,将所述模型参数作为底层变量,并执行以下数学优化:
[0016][0017]
通过搜索α
*
,使之能最小化验证集上的损失函数l
val
(w
*
(α),α)和正则化项r(α),其中,参数权重w
*
是通过最小化训练集上的损失函数l
train
(w,α)得到的,w为模型参数,α为辅助参数,λ为正则化项r(α)的权重系数。
[0018]
可选地,所述双层优化是迭代进行的,在训练集和验证集上,通过梯度下降的方法分别更新所述模型参数和所述辅助参数,并经过多步迭代最后达到局部最小值。
[0019]
可选地,所述方法还包括:模型在搜索过程中引入正则化器,用于对搜索过程进行计算量约束,以得到满足计算量要求的剪枝模型。
[0020]
可选地,所述正则化器包括:lasso正则器、连续的基于计算量估计的正则器和对称性正则器。
[0021]
可选地,所述连续的基于计算量估计的正则器为:
[0022][0023]
其中,e
flops
(α)是前l层卷积层的计算量,f是期望剪枝模型的计算量,ε代表容忍空间,ε<<1。此正则器会限制剪枝模型最终的计算量停留在[(1-ε)*f,f]之间。
[0024]
可选地,所述对称性正则器为:
[0025][0026]
其中,(l,l')代表一个以l个通道的特征图为输入、l'个通道的特征图为输出的残差单元,h
t
(
·
)是基于模拟退火的松弛函数,和为辅助参数,c
l
和c
l'
分别为输入和输出
卷积层的通道个数。
[0027]
根据本发明实施例的另一方面,提供了一种基于模型通道剪枝的图像分析装置,包括:
[0028]
指示器处理模块,用于为待处理的图像分析模型的每个卷积层分配通道指示器,并通过连续的辅助参数对所述通道指示器进行松弛化处理,得到松弛化的通道指示器,所述通道指示器用于表示所述卷积层的每个通道是否被剪枝;
[0029]
通道搜索模块,用于以所述松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道;
[0030]
剪枝处理模块,用于根据所述期望剪枝的通道对所述待处理的图像分析模型中的通道进行剪枝处理,得到剪枝处理的目标图像分析模型;
[0031]
图像分析模块,用于使用所述目标图像分析模型进行图像分析。
[0032]
根据本发明实施例的又一方面,提供了一种基于模型通道剪枝的图像分析电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所提供的基于模型通道剪枝的图像分析方法。
[0033]
根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例所提供的基于模型通道剪枝的图像分析方法。
[0034]
上述发明中的一个实施例具有如下优点或有益效果:通过为待处理的图像分析模型的每个卷积层分配用于表示卷积层的每个通道是否被剪枝的通道指示器,并通过连续的辅助参数对通道指示器进行松弛化处理,得到松弛化的通道指示器;以松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道;根据期望剪枝的通道对待处理的图像分析模型中的通道进行剪枝处理,得到目标图像分析模型;使用目标图像分析模型进行图像分析,实现了通过对模型进行剪枝处理得到可以部署于计算能力受限的控制管理平台的剪枝模型,并使用剪枝模型进行图像分析,从而可以将剪枝压缩后的模型应用于无人车控制管理平台上,以更好地进行图像分析,为无人驾驶的安全性和实时性提供了技术支持。本发明利用通道指示器表征原始网络,然后将通道指示器松弛化处理,即可将模型剪枝表示为通道指示器的搜索,减小了原始神经网络的参数量和计算时间,在给定的计算开销约束下自动搜索合适的剪枝模型,实现了自动化模型剪枝。
[0035]
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
[0036]
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
[0037]
图1是本发明实施例中提供的不同步长下的卷积运算示意图;
[0038]
图2是本发明实施例中提供的两种常见的池化操作示意图;
[0039]
图3是本发明实施例的模型通道剪枝的实现过程示意图;
[0040]
图4是根据本发明实施例的基于模型通道剪枝的图像分析方法的主要步骤示意图;
[0041]
图5是本发明实施例中提供的resnet残差单元的示意图;
[0042]
图6是本发明实施例中提供的两个网络设计空间中网络样例的示意图;
[0043]
图7是根据本发明实施例的基于模型通道剪枝的图像分析装置的主要模块示意图;
[0044]
图8是本发明实施例可以应用于其中的示例性系统架构图;
[0045]
图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
[0046]
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0047]
对于计算能力受限的平台来说,复杂的神经网络是无法在其上运行以用于进行图像和视频分析的,其中,视频分析可将视频切分为多个图像帧,并进行图像帧的分析来进行视频分析。为了解决这个技术问题,多是采用模型压缩技术来实现,模型压缩技术通过利用模型剪枝、知识蒸馏等手段,在最小化模型参数量和计算量的同时,最大化模型的性能指标。传统方法一般利用人工设计的规则来完成模型压缩,模型性能表现完全依赖于人为设计规则的质量。
[0048]
模型剪枝是减少神经网络参数数量的重要技术之一。在神经网络中,许多参数是冗余的,在训练和推理过程中不会为性能表现做出太大的贡献。模型剪枝技术希望从神经网络中删除某些冗余的参数,并将删除这些参数对原始网络精度的影响降低到最小。模型剪枝分为非结构化剪枝(unstructured pruning)和结构化剪枝(structured pruning),非结构化剪枝方法可以减掉神经网络任意位置的冗余参数,但会破坏原始网络的结构,不能直接为主流的深度学习框架支持。结构化剪枝方法,又称通道剪枝(channel pruning),通过删除神经网络冗余的通道达到模型剪枝的目的。通道剪枝不会破坏原始网络的结构特性,剪枝后的网络可以直接在主流深度学习框架中部署。由于其方便性,通道剪枝被越来越多的使用。
[0049]
尽管近年来模型剪枝领域有了长足的发展,但本领域依然具有不少的问题与挑战。模型剪枝方法目前存在两个主要挑战:
[0050]
(1)计算加速与性能下降的矛盾:模型剪枝方法希望在最大化模型剪枝率和计算速度的同时,最小化原始模型的性能损失;
[0051]
(2)日益增大的剪枝空间。随着近年来神经网络不断地加深加宽,神经网络的参数量也在成倍地增长,剪枝模型的搜索空间更是以指数级别增长,加剧了模型剪枝的难度。在如此严格的约束下,仅仅有少量人工设计的剪枝规则可以被有效应用在模型剪枝中。但这些剪枝规则均主要依赖于研究者的专家经验,如何转变为自动化模型剪枝方法,目前仍没有很好的实现方案。
[0052]
为了解决现有技术中所存在的技术问题,本发明提供了一种基于模型通道剪枝的图像分析方法,面向神经网络结构允许被修改的场景,聚焦于通道剪枝领域,通过对复杂的
神经网络模型进行剪枝处理,并使用剪枝模型进行图像分析。具体地,在进行模型剪枝处理时,通过消除模型的卷积层中冗余的通道来减少网络的参数量并降低网络的计算成本。它不需要额外的硬件支持,并且与代表性的深度学习加速框架如pytorch、tensorflow等完全兼容。总体而言,模型剪枝处理分为两步,首先以自动的方式搜索出满足一定约束(如flops数(floatingpoint operations,浮点运算数)、剪枝率等计算约束)的剪枝模型,然后在目标数据集上对搜索得到的剪枝模型进行微调(finetune),具体来说,模型引入了二值化通道指示器(binarized channel indicator),在此基础上利用连续的辅助参数对二值化通道指示器进行松弛,松弛过程后,通道指示器由二值化的离散态变为连续,可以通过梯度下降等优化方式进行可微分搜索。在搜索过程中,模型采用了双层优化(bi-level optimization)的方法,联合学习模型参数和辅助参数,在考虑模型精度的同时,确定每个通道的重要性。
[0053]
同时,将一种基于模拟退火的松弛函数(annealing-relaxed function)应用在模型的通道指示器中。应用该松弛函数后,该指示器在高温下呈现连续状态,在低温下逐渐趋向离散态。结合此特性,通道指示器在搜索开始前初始化为高温,并随着训练的进行逐渐进行退火,最终逐渐收敛到二值化状态。这种基于模拟退火的松弛函数,减轻了搜索过程中得到的剪枝模型与预训练的超网之间的差异。为了使剪枝模型满足一定的结构化约束,模型设计了专用的正则器:1)连续的基于计算量flops估计的正则器(continuousflops estimator regularizer),用于控制剪枝模型的计算成本;2)对称性正则器(symmetry regularizer),用于优化具有残留连接的超深层神经网络的梯度传播。此外,dais是一种一次性剪枝方式(one-shot pruning),与大多数现有的需要迭代剪枝的方法相比,模型的剪枝效率较高。
[0054]
在本发明的技术方案中,如何进行模型的通道剪枝以得到剪枝模型,这是重点。下面将详细介绍本发明的具体实施过程。首先,关于通道剪枝,通道剪枝可以通过减少原始神经网络卷积层的输出通道个数,从而达到网络参数量缩小、计算速度提高的目的。接下来,本发明将先使用数学语言描述与通道剪枝任务相关的先验知识,再定义通道剪枝任务。
[0055]
(1)通道剪枝先验知识
[0056]
特征图信息传播:通道剪枝是以卷积神经网络为目标优化网络的。以神经网络的第l层信息传播为例,该层网络以第l-1层的输出特征图为输入,在第l层执行运算得到特征图ok:
[0057][0058]
其中,kk(
·
)指代广义的卷积核,包括不同步长(stride)和填充(padding)的卷积、池化(pooling)操作以及深度卷积(depth-wise convolution)等;c
l
为第l层的通道个数,kk(m,n,c)中的m和n构成了卷积核(m
×
n),c即为卷积层的通道个数。卷积核每次在特征图上滑动的行/列数被称为步长,如图1所示,图1是不同步长下的卷积运算示意图。在卷积操作前,对矩阵的边界进行扩增的操作被称为填充。给定输入特征图的长/宽s
in
,步长为s,填充为p和k x k的卷积核,输出特征图的长/宽s
out
为:
[0059][0060]
池化操作会把输入特征图中k
×
k范围的数值压缩为一个值。图2是两种常见的池化操作示意图,图2罗列了两种最常见的池化函数:最大值池化(max-pooling)和均值池化(average-pooling)。最大值池化,会把输入特征图的k
×
k范围的数值用其最大值取代;均值池化,会把输入特征图的k
×
k范围的数值用其平均值取代。
[0061]
此外,本发明涉及mobilenet使用的深度卷积,每个卷积核只对o
l-1
的单个通道计算卷积,公式
[0062][0063]
其中,kk(
·
)指代广义的卷积核,包括不同步长(stride)和填充(padding)的卷积、池化(pooling)操作以及深度卷积(depth-wise convolution)等;c
l
为第l层的通道个数,kk(m,n,ck)中的m和n构成了卷积核(m
×
n),ck即为卷积层的通道个数。
[0064]
通道剪枝最小单元:通道剪枝面对的最小单元是一个“卷积层——激活层——归一化层”的组合,公式o
l
={(o
l-1
*kk)(i,j)|k∈[1,
…cl
]}指代广义的卷积层,本发明利用的激活层(activation layer)为:
[0065]
relu(a)=max(0,a);
[0066]
a代表公式o
l
={(o
l-1
*kk)(i,j)|k∈[1,
…cl
]}输出特征图的值。在激活层之后,本发明利用的归一化层(normalization layer)为批归一化(batch normalization,bn),对于每个mini-batch的数据,bn会逐通道计算均值和方差,组成长度为c
l
的向量μ和σ2,把原始的特征o
in
归一化到均值为0方差为1的分布中:
[0067]ol
=f
l
(w
l
,o
l-1
)。
[0068]
(2)通道剪枝
[0069]
由(1)通道剪枝先验知识可以得知,一般的卷积神经网络是由一系列卷积层构成的。假设将一个卷积神经网络抽象为一个具有l层卷积层的网络,并且将o
l
定义为第l卷积层的输出特征图,则第l层的输出特征图o
l
的计算过程通常可以描述为:
[0070]ol
=f
l
(w
l
,o
l-1
),
[0071]
其中,代表第l层卷积层的参数矩阵,由c
l
个卷积核组成。f(
·
,
·
)指代公式中提到的卷积运算,每个卷积核均对前一层的输出特征图o
l-1
进行卷积操作,并得到本层的输出特征图o
l

[0072]
通道剪枝(channel pruning)的优化目标就是在尽量保持神经网络原始精度的同时,从原始神经网络模型中使用最少的参数来得到一个稀疏模型。体现在每个卷积层上,通道剪枝的任务就是在保证卷积神经网络的原始结构的前提下,减少尽可能多的卷积核的数量,从而使得每层输出特征图o
l
的输出通道数尽可能小。
[0073]
根据上面所介绍的通道剪枝,本发明在进行模型的通道剪枝时,是基于神经架构搜索的通道剪枝。下面将具体介绍本发明中基于可微分搜索和模拟退火技术来进行模型通道剪枝的实现过程。
[0074]
图3是本发明实施例的模型通道剪枝的实现过程示意图。如图3所示,在本发明的实施例中,首先,进行模型的通道指示器的松弛化处理。可通过为神经网络模型的每个卷积层分配通道指示器,并通过基于模拟退火的松弛函数,对通道指示器进行松弛,从而得到基于模拟退火的松弛化的通道指示器(annealing-relaxed channel indicators);然后,模型进行基于退火松弛的可微分的通道指示器搜索过程。随着训~练的进行,基于模拟退火的松弛化的通道指示器i
l
i也会随着温度的降~低,重新收敛到二值化的状态。柱状图展示了在不同温度下的i
l
i的值,~显示出i
l
i从连续变为二值化的趋势。h
t
(*)展示了模型使用的基于退火的松弛函数,随着温度的降低,h
t
(*)的走向越来越陡,当温度t=0.002时,h
t
(*)已经近似为一个二值化函数了。最后,得到最后的剪枝模型。在第二步可微分的通道指示器搜索过程之后,模型将剪枝掉原始神经~网络模型中那些通道指示器近似为0(i
l
i=0)的通道,得到最终的剪枝模型。
[0075]
图4是根据本发明实施例的基于模型通道剪枝的图像分析方法的主要步骤示意图。如图4所示,本发明实施例的基于模型通道剪枝的图像分析方法主要包括如下的步骤s401至步骤s404。
[0076]
步骤s401:为待处理的图像分析模型的每个卷积层分配通道指示器,并通过连续的辅助参数对所述通道指示器进行松弛化处理,得到松弛化的通道指示器,所述通道指示器用于表示所述卷积层的每个通道是否被剪枝。
[0077]
根据本发明的技术方案,通道指示器为二值化通道指示器,所述连续的辅助参数为基于模拟退火的松弛函数,所述松弛化的通道指示器在高温下呈现连续状态,在低温下逐渐趋向离散态。
[0078]
可微分搜索被应用于很多神经架构搜索的方法,但很少被应用在解决通道剪枝问题中。在这样的背景下,模型将可微分搜索引入通道剪枝领域,并提出了可微分的指示器搜索方法。可微分的指示器搜索,顾名思义,就是以通道指示器作为搜索空间,使用可微分的手段搜索合适的通道指示器,再利用通道指示器指导通道剪枝,减小原始神经网络的参数量和计算时间。但是,原始的通道指示器是二值化的,这样的离散变量无法微分,于是可微分搜索更是无从谈起了。因此,为了实现可微分的通道指示器搜索,需要首先解决离散的通道指示器的问题。
[0079]
本发明利用了松弛化(relaxation)解决离散通道指示器的问题。具体而言,为了将通道指示器连续化,本发明将二值化的通道指示器松弛成为连续的并由连续的辅助参数表示,在松弛化之后,通道指示器搜索就等价于同时对模型参数w和辅助参数的优化。
[0080]
在本发明的实施例中,使用基于模拟退火的松弛函数来对所述通道指示器进行松弛化处理,得到的松弛化的通道指示器为:
[0081][0082]
其中,t是对模型的激活函数增加的温度变量,h
t
(
·
)是基于模拟退火的松弛函
数,是松弛化的通道指示器,是松弛化处理前的二值化通道指示器,为辅助参数,l为卷积层在所述待处理的图像分析模型中的层数,且t在模型搜索开始前设定为高温t=t0,随着搜索进行,的温度t会按照退火模式降低。
[0083]
根据之前的介绍,松弛过程会选择一个松弛后的通道指示器来模拟原始的二值化通道指示器这就要求的值域应该限制在0和1之间。为此,本发明提出了一种基于模拟退火的松弛化的通道指示器。具体而言,模型为激活函数sigmoid函数增加了温度变量t,t在模型搜索开始前设定高温,并随着搜索过程的进行不断降低温度:
[0084][0085]
其中,t是对模型的激活函数增加的温度变量,h
t
(
·
)是基于模拟退火的松弛函数,是松弛化的通道指示器,是松弛化处理前的二值化通道指示器,为辅助参数,l为卷积层在所述待处理的图像分析模型中的层数,温度t初始设定为高温t=t0。随着搜索进行,的温度t会按照退火模式由σ(
·
)降低到t0/σ(n),在搜索过程的末尾,的温度t

0,此时松弛化指示器重新变为近似二值化状态。
[0086]
在这样的温度设定下,松弛后的通道指示器初始状态为连续值,可以通过可微分的方法按照公式更新;同时在搜索结束时,指示器的值会自动降低到近似二值化的状态,从而抵消了搜索出来的期望最优剪枝和最终要被部署的剪枝模型之间的差异。
[0087]
步骤s402:以所述松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道指示器。
[0088]
在得到松弛化的通道指示器之后,即可基于松弛化的通道指示器进行可微分搜索。本发明将二值化的通道指示器松弛成为连续的并由连续的辅助参数表示,在松弛化之后,通道指示器搜索就等价于同时对模型参数w和辅助参数的优化。
[0089]
根据本发明的其中一个实施例,使用可微分的手段搜索得到期望剪枝的通道指示器,在实现过程中,具体可以包括:通过对模型参数和所述辅助参数进行优化处理以进行可微分搜索,确定每个通道的重要性,将重要性低于设定阈值的通道作为得到期望剪枝的通道指示器。其中,重要性所对应的阈值可以预先进行设定,根据应用需要进行灵活调整。
[0090]
其中,上述松弛化的通道指示器类似于一个连续区间。
[0091]
在本发明的实施例中,对模型参数和所述辅助参数进行优化处理具体可以包括:使用双层优化的方式,将所述辅助参数作为上层变量,将所述模型参数作为底层变量,并执行以下数学优化:
[0092]
[0093]
通过搜索α
*
,使之能最小化验证集上的损失函数l
val
(w
*
(α),α)和正则化项r(α),其中,参数权重w
*
是通过最小化训练集上的损失函数l
train
(w,α)得到的,w为模型参数,α为辅助参数,λ为正则化项r(α)的权重系数。
[0094]
通常,最容易想到的优化方式是同步优化(simultaneous optimization),即在训练集上同时优化模型参数w和辅助参数但是,同步优化可能导致在训练集合上的过拟合(overfitting),使得搜索得到的剪枝模型仅在训练集上效果很好,却缺乏在测试集和更广泛的其他未见数据上的泛用性。因此,模型选用了双层优化(bi-level optimization),作为可微分的指示器搜索过程中的优化算法。具体而言,双层优化会把辅助参数当成上层变量(upper-level variable),把模型参数w当做底层变量(lower-level variable),并执行以下数学优化:
[0095][0096]
双层优化方法会搜索α
*
,使之能最小化验证集上的损失函数l
val
(w
*
(α),α)和正则化项r(α)。其中,参数权重w
*
是通过最小化训练集上的损失函数l
train
(w,α)得到的。同时,双层优化问题是迭代进行的:在训练集和验证集上,通过梯度下降的方法分别更新模型参数w和辅助参数并经过多步迭代最后达到局部最小值。
[0097]
根据本发明的又一个实施例,在可微分搜索过程中,如果只使用原有任务的损失函数(对于分类任务而言,原始损失函数为交叉熵函数),将无法为剪枝模型提供诸如浮点运算量(flops)等结构性约束(structural restrictions)。举例来说,如果没有任何结构性约束,可微分搜索将倾向于把所有通道指示器置为1,因为这种情况下模型的精度最高。但是,这样的结果与通道剪枝任务是相悖的,因为搜索出来的模型没有减少模型的参数量和flops(floatingpoint operations,浮点运算数),无法达到模型压缩的效果。因此,结构化约束对于通道剪枝任务是必需的。在本发明的实施例中,模型在搜索过程中引入正则化器,用于对搜索过程进行计算量约束,以得到满足计算量要求的剪枝模型。其中,计算量约束即包括了对模型的参数量和flops等运算量等的约束,在本发明的实施例描述中,又可以叫做结构化约束。为了引入结构化约束,如公式所述,模型在搜索过程中引入了正则化器r(α),通过正则化器r(α)约束搜索过程,从而寻找符合结构化要求的剪枝模型。以下介绍模型构建的三种正则化器:lasso正则器、连续的基于计算量估计的正则器和对称性正则器,其中,连续的基于计算量估计的正则器例如是连续的基于flops估计的正则器(continuous flops estimator regularizer)。
[0098]

lasso正则器(lasso regularizer)
[0099]
最简单的正则化器是使用lasso回归:
[0100][0101]
lasso正则器r
lasso
利用lasso回归的特性,可以有效地将某些通道指示器正则为0,通过人为调整r
lasso
在公式的权重,来逐渐调整剪枝模型的剪
枝率。
[0102]

连续的基于flops估计的正则器(continuous flops estimator regularizer)
[0103]
在某种意义上,通道指示器的值和通道被保留的概率是相关的:通道指示器的值越小,对应通道被保留的概率越小,生成对应通道所花费的flops也以更小的概率被进入总体flops。由于这样的相关性,通道指示器用于估算神经网络的flops。前l层卷积层的flops可以被估计为:
[0104][0105]
其中,k
l
代表卷积核大小,h
l
、w
l
代表输出特征图的长宽。
[0106]
同时,对模型flops的估计可以视为一种正则器,约束剪枝模型尽可能地减少flops。利用这些性质,本发明提出了一种连续的基于flops估计的正则器:
[0107][0108]
其中,e
flops
(α)是前l层卷积层的计算量,f是期望剪枝模型的计算量,ε代表容忍空间,ε<<1。此正则器会限制剪枝模型最终的计算量停留在[(1-ε)*f,f]之间。
[0109]

对称性正则器(symmetry regularizer)
[0110]
残差单元(residual block)设计:残差单元(residual block)由resnet论文率先提出,并被广泛集成在网络设计中,通过构建卷积层之间的跨层连接,极大地提高了神经网络梯度传播的能力。在resnet中,一个标准的残差单元由多个卷积层构成。当一个单元的输入和输出通道的数量相等时,残差单元设计会通过添加从输入到输出的非参数化的恒等映射(identity function)f(x)=x作为旁路(shortcut);而输入和输出通道的数量不等时,恒等映射将被通过采样或卷积所替代。resnet在设计网络时,大量残差单元的输入输出通道均是相等的,所以大部分模块均采用恒等函数作为旁路,在梯度的反向传播中可以有效地避免梯度消失或者梯度爆炸。图5是resnet残差单元的示意图。如图5,resnet残差单元包括正常残差单元和bottleneck单元。
[0111]
现有通道剪枝方法对残差网络的处理:现有的通道剪枝方法无法保证残差块的输入和输出通道数之间的相等,所以需要加入大量的1
×
1卷积层用于匹配输入通道和输出通道数,或者直接删除旁路避免此问题。这些替换可能会增加梯度在深度网络中反向传播的难度,并导致梯度消失和爆炸的问题。
[0112]
减少恒等映射对残差网络的影响:为了验证减少恒等映射对残差网络的影响,本发明建立了两个网络设计空间“random”和“constrained”。“random”空间对每个卷积层剩余通道数没有任何限制,而在“constrained”空间中,任意网络实例的残差单元都被限制为具有相同数量的输入通道和输出通道。两个空间各自随机采样50个具有110层卷积层的残差网络实例(instance),以模拟resnet-110的通道剪枝结果。所有这些网络实例都在cifar-10数据集中训练了300轮。两个网络设计空间的详细信息如下:
[0113]“random”空间:“random”空间中的网络实例,每个卷积层保留个通道,其中c
l
代表原始resnet-110网络在第l层的输出通道数量,u(0.5,1)标识从值域[0.5,1]中均匀采样;
[0114]“constrained”空间:“constrained”空间中的网络实例,希望保留网络中大多数残差单元的恒等映射旁路。要达成这样的目的,需要在每个残差块中保持相同数量的输入和输出通道。因此,“constrained”空间设定了如下的采样规则:对于第一阶段(输出特征图大小:32
×
32)中的所有残差单元,输出通道设置为16*u(0.5,1)。对于第二阶段(输出特征图大小:16
×
16)中的所有残差单元,输出通道设置为32*u(0.5,1)。对于第三阶段(输出特征图大小:8
×
8)中的所有残差单元,输出通道设置为64*u(0.5,1)。对于网络中其余卷积层,“constrained”空间以与“random”空间相同的方式随机采样:
[0115]
图6是两个网络设计空间中网络样例的示意图。图6示出了“random”空间和“constrained”空间的实例在cifar-100数据集上的准确率分布。其中,“random”空间的实例为图中小方框内的部分,其余的为“constrained”空间的实例。flops被限定在[1.1e8,1.5e8]。在具有相似的flops时,由“constrained”空间生成的模型实例与“random”空间的实例相比,“constrained”空间在准确性和剪枝率方面获得了一致性的性能提升,这表明残差块中输入通道和输出通道之间保持一致性的重要性。
[0116]
对称性正则器:为了使残差单元中尽可能保持输入通道和输出通道的一致性,模型为深度残差网络设计了一种对称性正则器(symmetry regularizer):
[0117][0118]
其中,(l,l')代表一个以l个通道的特征图为输入、l'个通道的特征图为输出的残差单元,h
t
(
·
)是基于模拟退火的松弛函数,和为辅助参数,c
l
和c
l'
分别为输入和输出卷积层的通道个数。
[0119]
步骤s403:根据所述期望剪枝的通道指示器对所述待处理的图像分析模型中的通道进行剪枝处理,得到剪枝处理的目标图像分析模型。
[0120]
在本实施例中,在确定了期望进行剪枝的通道后,即可使用通道剪枝算法来对待处理的图像分析模型中的通道进行剪枝处理,以生成目标图像分析模型。其中,通道剪枝算法例如是结构化剪枝算法filter-wise、channel-wise、shape-wise、block-wise pruning等等。具体的通道剪枝算法本发明不作限定。
[0121]
步骤s404:使用所述目标图像分析模型进行图像分析。
[0122]
在本实施例中,通过将待分析的图像输入到剪枝处理后得到的目标图像分析模型来进行图像分析,可以更好地适用于计算能力受限的自动驾驶汽车和智能移动终端等的控制管理平台。
[0123]
根据上述的步骤s401至步骤s404,即可利用通道指示器来表示原模型每个通道是否被剪枝,并在计算成本约束下搜索合适的剪枝模型。模型使用连续的辅助函数来对通道指示器进行近似,使二值化通道指标变得可微,然后使用可微分的手段获取期望剪枝的通道指示器,然后对模型进行剪枝处理,最后使用剪枝模型进行图像分析,对于计算能力受限的自动驾驶汽车和智能移动终端等的控制管理平台,可以实现基于计算机视觉技术更好地
进行图像分析,为无人驾驶的安全性和实时性提供技术支持。
[0124]
根据上述所介绍的技术方案,利用模型的通道指示器(channel indicator)来表示原模型每个通道是否被剪枝,并在计算成本约束下搜索合适的剪枝模型。具体而言,模型使用基于模拟退火的松弛函数来对通道指示器进行近似,使二值化通道指标变得可微,然后使用基于梯度的双层优化(bi-level optimization)共同优化通道指示器和模型参数。松弛函数的模拟退火过程会随着搜索过程的进行同步进行,从而使得基于模拟退火的通道指示器逐渐自动地收敛到二值化状态。此外,模型提出了一个连续的基于flops估计的正则器来精确约束模型大小,并提出了一个对称性正则器来优化在非常深的残差网络上的梯度传播。
[0125]
根据本发明的另一个方面,还提供了一种基于模型通道剪枝的图像分析装置。图7是根据本发明实施例的基于模型通道剪枝的图像分析装置的主要模块示意图。如图7所示,本发明实施例的基于模型通道剪枝的图像分析装置700主要包括指示器处理模块701、通道搜索模块702、剪枝处理模块703和图像分析模块704。
[0126]
指示器处理模块701,用于为待处理的图像分析模型的每个卷积层分配通道指示器,并通过连续的辅助参数对所述通道指示器进行松弛化处理,得到松弛化的通道指示器,所述通道指示器用于表示所述卷积层的每个通道是否被剪枝;
[0127]
通道搜索模块702,用于以所述松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道;
[0128]
剪枝处理模块703,用于根据所述期望剪枝的通道对所述待处理的图像分析模型中的通道进行剪枝处理,得到剪枝处理的目标图像分析模型;
[0129]
图像分析模块704,用于使用所述目标图像分析模型进行图像分析。
[0130]
根据本发明的一个实施例,所述通道指示器为二值化通道指示器,所述连续的辅助参数为基于模拟退火的松弛函数,所述松弛化的通道指示器在高温下呈现连续状态,在低温下逐渐趋向离散态。
[0131]
根据本发明的另一个实施例,所述松弛化的通道指示器为:
[0132][0133]
其中,t是对模型的激活函数增加的温度变量,h
t
(
·
)是基于模拟退火的松弛函数,是松弛化的通道指示器,是松弛化处理前的二值化通道指示器,为辅助参数,l为卷积层在所述待处理的图像分析模型中的层数,且t在模型搜索开始前设定为高温t=t0,随着搜索进行,的温度t会按照退火模式降低。
[0134]
根据本发明的又一个实施例,所述松弛化的通道指示器由所述辅助参数表示,通道搜索模块702还可以用于:通过对模型参数和所述辅助参数进行优化处理以进行可微分搜索,确定每个通道的重要性,将重要性低于设定阈值的通道作为得到期望剪枝的通道指示器,其中,对模型参数和所述辅助参数进行优化处理包括:使用双层优化的方式,将所述辅助参数作为上层变量,将所述模型参数作为底层变量,并执行以下数学优化:
[0135][0136]
通过搜索α
*
,使之能最小化验证集上的损失函数l
val
(w
*
(α),α)和正则化项r(α),其中,参数权重w
*
是通过最小化训练集上的损失函数l
train
(w,α)得到的,w为模型参数,α为辅助参数,λ为正则化项r(α)的权重系数。
[0137]
根据本发明的又一个实施例,所述双层优化是迭代进行的,在训练集和验证集上,通过梯度下降的方法分别更新所述模型参数和所述辅助参数,并经过多步迭代最后达到局部最小值。
[0138]
根据本发明的又一个实施例,基于模型通道剪枝的图像分析装置700还可以包括结构化约束模块(图中未示出),用于:模型在搜索过程中引入正则化器,用于对搜索过程进行计算量约束,以得到满足结计算量要求的剪枝模型。
[0139]
根据本发明的又一个实施例,所述正则化器包括:lasso正则器、连续的基于计算量估计的正则器和对称性正则器。
[0140]
根据本发明的又一个实施例,所述连续的基于计算量估计的正则器为:
[0141][0142]
其中,e
flops
(α)是前l层卷积层的计算量,f是期望剪枝模型的计算量,ε代表容忍空间,ε<<1。此正则器会限制剪枝模型最终的计算量停留在[(1-ε)*f,f]之间。
[0143]
根据本发明的再一个实施例,所述对称性正则器为:
[0144][0145]
其中,(l,l')代表一个以l个通道的特征图为输入、l'个通道的特征图为输出的残差单元,h
t
(
·
)是基于模拟退火的松弛函数,和为辅助参数,c
l
和c
l'
分别为输入和输出卷积层的通道个数。
[0146]
根据本发明实施例的技术方案,通过为待处理的图像分析模型的每个卷积层分配用于表示卷积层的每个通道是否被剪枝的通道指示器,并通过连续的辅助参数对通道指示器进行松弛化处理,得到松弛化的通道指示器;以松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道;根据期望剪枝的通道对待处理的图像分析模型中的通道进行剪枝处理,得到目标图像分析模型;使用目标图像分析模型进行图像分析,实现了通过对模型进行剪枝处理得到可以部署于计算能力受限的控制管理平台的剪枝模型,并使用剪枝模型进行图像分析,从而可以将剪枝压缩后的模型应用于无人车控制管理平台上,以更好地进行图像分析,为无人驾驶的安全性和实时性提供了技术支持。本发明利用通道指示器表征原始网络,然后将通道指示器松弛化处理,即可将模型剪枝表示为通道指示器的搜索,减小了原始神经网络的参数量和计算时间,在给定的计算开销约束下自动搜索
合适的剪枝模型,实现了自动化模型剪枝。
[0147]
图8示出了可以应用本发明实施例的基于模型通道剪枝的图像分析方法或基于模型通道剪枝的图像分析装置的示例性系统架构800。
[0148]
如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0149]
用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用,例如神经网络类应用、数理统计类应用、图表类应用、导航类应用、无人车控制系统等(仅为示例)。
[0150]
终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0151]
服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所发来的图像分析请求提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的模型剪枝请求或图像分析请求等数据进行为待处理的图像分析模型的每个卷积层分配通道指示器,并通过连续的辅助参数对所述通道指示器进行松弛化处理,得到松弛化的通道指示器,所述通道指示器用于表示所述卷积层的每个通道是否被剪枝;以所述松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道指示器;根据所述期望剪枝的通道指示器对所述待处理的图像分析模型中的通道进行剪枝处理,得到剪枝处理的目标图像分析模型;使用所述目标图像分析剪枝模型进行图像分析等处理,并将处理结果(例如目标图像分析模型、图像分析结果
‑‑
仅为示例)反馈给终端设备。
[0152]
需要说明的是,本发明实施例所提供的基于模型通道剪枝的图像分析方法一般由服务器805执行,相应地,基于模型通道剪枝的图像分析装置一般设置于服务器805中。
[0153]
应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0154]
下面参考图9,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机系统900的结构示意图。图9示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0155]
如图9所示,计算机系统900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram 903中,还存储有系统900操作所需的各种程序和数据。cpu 901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
[0156]
以下部件连接至i/o接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
[0157]
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计
算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(cpu)901执行时,执行本发明的系统中限定的上述功能。
[0158]
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0159]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0160]
描述于本发明实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,例如,可以描述为:一种处理器包括指示器处理模块、通道搜索模块、剪枝处理模块和图像分析模块。其中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定,例如,图像分析模块还可以被描述为“用于使用所述目标图像分析模型进行图像分析的模块”。
[0161]
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:为待处理的图像分析模型的每个卷积层分配通道指示器,并通过连续的辅助参数对所述通道指示器进行松弛化处理,得到松弛化的通道指示器,所述通道指示器用
于表示所述卷积层的每个通道是否被剪枝;以所述松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道指示器;根据所述期望剪枝的通道指示器对所述待处理的图像分析模型中的通道进行剪枝处理,得到剪枝处理的目标图像分析模型;使用所述目标图像分析剪枝模型进行图像分析。
[0162]
根据本发明实施例的技术方案,通过为待处理的图像分析模型的每个卷积层分配用于表示卷积层的每个通道是否被剪枝的通道指示器,并通过连续的辅助参数对通道指示器进行松弛化处理,得到松弛化的通道指示器;以松弛化的通道指示器作为搜索空间,使用可微分的手段搜索得到期望剪枝的通道;根据期望剪枝的通道对待处理的图像分析模型中的通道进行剪枝处理,得到目标图像分析模型;使用目标图像分析模型进行图像分析,实现了通过对模型进行剪枝处理得到可以部署于计算能力受限的控制管理平台的剪枝模型,并使用剪枝模型进行图像分析,从而可以将剪枝压缩后的模型应用于无人车控制管理平台上,以更好地进行图像分析,为无人驾驶的安全性和实时性提供了技术支持。本发明利用通道指示器表征原始网络,然后将通道指示器松弛化处理,即可将模型剪枝表示为通道指示器的搜索,减小了原始神经网络的参数量和计算时间,在给定的计算开销约束下自动搜索合适的剪枝模型,实现了自动化模型剪枝。
[0163]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

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

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

相关文献