本发明涉及神经网络技术领域,尤其涉及一种基于ds结构的cnn模型压缩方法、装置及存储介质。
背景技术:
尽管卷积神经网络(cnn)在诸如计算机视觉、自然语言处理等领域均取得了出类拔萃的效果,但其动辄过亿的参数数量却使得诸多实际应用(特别是基于嵌入式设备的应用)望而却步。以经典的vgg16网络为例,其参数数量达到了1亿3千多万,占用超500mb的存储空间,需要进行309亿次浮点运算才能完成一张图像的识别任务。如此巨大的存储代价以及计算开销,严重制约了深度网络在移动端等小型设备上的应用。
鉴于此,神经网络的压缩逐渐成为当下深度学习领域的热门研究课题,综合现有的深度模型压缩方法,主要分为四类:参数修剪和共享、低秩因子分解、转移和紧凑卷积滤波器以及知识蒸馏。基于参数修剪和共享的方法针对模型参数的冗余性,试图去除冗余和不重要的项。基于低秩因子分解的技术使用矩阵/张量分解来估计深度学习模型的信息参数。基于传输/紧凑卷积滤波器的方法设计了特殊的结构卷积滤波器来降低存储和计算复杂度。知识蒸馏方法通过学习一个蒸馏模型,训练一个更紧凑的神经网络来重现一个更大的网络的输出。
上述神经网络压缩方法,通过将一个庞大而复杂的预训练模型转化为一个精简的小模型而实现压缩目的;在追求模型高准确度的同时,尽可能地降低其复杂度,以期达到性能与开销上的平衡。但是上述方法存在的弊端如下:
1、压缩的效果参差不齐;
2、压缩后的模型存在较严重的精度损失。
所以,亟需一种高压缩性和高精度的cnn模型压缩方法。
技术实现要素:
本发明提供一种基于ds结构的cnn模型压缩方法、电子装置及计算机可读存储介质,其主要通过在深度神经网络中应用ds卷积块结构,在保证图片特征提取能力的同时,大大减少了神经网络的参数数量。
为实现上述目的,本发明还提供一种基于ds结构的cnn模型压缩方法,应用于电子装置,方法包括:
s110、通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;其中,ds卷积块包括:卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn;
s120、将ds卷积块有序堆叠形成神经网络结构;
s130、在神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。
进一步,优选的,当ds卷积块为神经网络模型的第一个卷积块时,ds卷积块的过滤器数量为2的倍数;当ds卷积块为神经网络模型的除第一个卷积块之外的其他卷积块时,ds卷积块的过滤器数量等于上一个卷积块的输出通道数量的6倍。
进一步,优选的,激活函数为swish激活函数,swish激活函数的公式为:
f(x)=x×slgmoid(βx)
其中,β为x的缩放参数,β=1;sigmoid是非线性的激活函数。
进一步,优选的,dw卷积包括一个深度卷积及一个加在深度卷积前的1*1的卷积。
进一步,优选的,semodule包括reduce_conv和expand_conv两个卷积层;其中,reduce_conv卷积层的过滤器数量为卷积conv_1的过滤器数量的1/24;expand_conv卷积层的过滤器数量等于卷积conv_1的过滤器数量。
为实现上述目的,本发明提供一种电子装置,该电子装置包括:存储器、处理器,存储器中存储有基于ds结构的cnn模型压缩程序,基于ds结构的cnn模型压缩程序被处理器执行时实现如下步骤:s110、通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;其中,ds卷积块包括:卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn;s120、将ds卷积块有序堆叠形成神经网络结构;s130、在神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。优选的,当所述ds卷积块为所述神经网络模型的第一个卷积块时,ds卷积块的过滤器数量为2的倍数;当所述ds卷积块为所述神经网络模型的第一个卷积块之外的其他卷积块时,ds卷积块的过滤器数量等于上一个卷积块的输出通道数量的6倍。优选的,所述激活函数为swish激活函数,所述swish激活函数的公式为:
f(x)=x×sigmoid(βx)
其中,β为x的缩放参数,β=1;sigmoid是非线性的激活函数。优选的,所述dw卷积包括一个深度卷积及一个加在所述深度卷积前的1*1的卷积。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括基于ds结构的cnn模型压缩程序,所述基于ds结构的cnn模型压缩程序被处理器执行时,实现上述的基于ds结构的cnn模型压缩方法的步骤。
本发明提出的基于ds结构的cnn模型压缩方法、电子装置及计算机可读存储介质,基于深度可分离卷积(depthwise-pointwise)和轻量级注意力结构(squeeze-excitation),联合使用普通卷积和batchnorm操作运算,最终设计出紧凑型的cnn组件-ds卷积块,将卷积块的有序堆叠可实现参数量较少但是精度基本不受损的神经网络模型;有益效果如下:
(1)、在神经网络结构中将ds卷积块作为cnn组件,可以在保证图片特征提取能力的同时,减少神经网络参数的数量;
(2)、大大降低神经网络模型的显存占用和浮点运算量,从而实现cnn模型的存储和运算优化;
(3)、将本发明的压缩方法应用于arcface人脸识别项目中,可实现320维的人脸特征数据特征提取,使用casia-webface公开数据集训练得到新模型;在准确率方面,新模型在lfw验证集上的准确率达99.52%,与原模型的准确率相当;但在参数数量方面,新模型参数只有5.1兆,相较于原模型的54兆,新模型的参数压缩率达到了10倍左右。
附图说明
图1为本发明基于ds结构的cnn模型压缩方法较佳实施例的流程图;
图2为本发明的ds卷积块的较佳实施例的结构示意图;
图3为本发明的神经网络模型的较佳实施例的结构示意图;
图4为本发明的电子装置的较佳实施例的结构示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现有的神经网络在压缩时,通常是将一个庞大而复杂的预训练模型转化为一个精简的小模型以实现压缩目的,但是这种压缩方法不仅压缩的效果参差不齐,压缩后的模型也存在较严重的精度损失。
本发明基于深度可分离卷积(depthwise-pointwise)和轻量级注意力结构(squeeze-excitation),联合使用普通卷积和bn(batchnorm)操作运算,最终设计出紧凑型的cnn组件-ds卷积块,该ds卷积块的有序堆叠可形成参数量较少但是精度基本不受损的模型,从而大大降低模型的显存占用和浮点运算量,最终实现cnn模型的存储和运算优化。
本发明提供一种基于ds结构的cnn模型压缩方法。图1示出了根据本发明基于ds结构的cnn模型压缩方法较佳实施例的流程。参照图1所示,该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。
在本实施例中,基于ds结构的cnn模型压缩方法包括:步骤s110-步骤s130。
s110、通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;也就是说,将semodule和dw卷积结构作为一个子结构嵌入到了ds卷积块中。
图2示出了根据本发明的本发明的ds卷积块的较佳实施例的结构;参照图2所示,卷积块为ds卷积块,在一个具体实施例中,ds卷积块包括:
卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn。
需要说明的是,在现有技术中,激活函数采用的是relu。在一个具体实施例中,在保持所有的模型参数不变的情况下,只是把原来模型总的relu激活函数修改为swish激活函数,模型的准确率均有提升。
所述swish激活函数的公式为:
f(x)=x×sigmoid(βx)
其中,β为x的缩放参数,在本实施例中的β设为1。
sigmoid是常用的非线性的激活函数,其数学公式如下:
需要说明的是,ds卷积块中的普通卷积是指ds卷积块结构的第一个卷积操作单元和最后一个卷积操作单元,即卷积conv_1、卷积conv_2。
其中,卷积conv_1属于二维卷积,为ds卷积块结构的第一个操作单元。其卷积核的大小为1*1;步长为1*1;
具体地说,卷积conv_1过滤器的数量为:
1.当ds卷积块为整个深度神经网络的第一个卷积块时,过滤器数为2的倍数,建议最小值不小于16;
2.当ds卷积块为整个深度神经网络的第二个或第二个以上卷积块时,过滤器数量等于上一个卷积块的输出道通数的6倍。
具体地,conv_2属于二维卷积,为ds卷积块结构的最后一层卷积操作,因此其过滤器数量决定了ds卷积块输出通道的维度。
conv_2卷积核大小(kernelsize)为1*1,步幅(stride)为1*1,过滤器数量可通过网格搜索算法来确定,而无法使用具体地数学公式来表示。但不同ds卷积块结构的conv_2过滤器具有如下特点:
1.后面的ds卷积块的过滤器大于上一层的卷积块的conv_2过滤器数
2.conv_2过滤器数大于等于conv_1过滤器数的2倍
3.conv_2过滤器数小于conv_1过滤器数的4倍
4.conv_2过滤器数为偶数。
在一个具体实施例中,在每个卷积层后面添加批标准化bn,以实现内部数据归一化;其中,bn是batchnormalization的缩写,即批标准化操作,也叫作批归一化。通过bn让每一层的输入的分布变得相似,以防止神经元的输出变化到饱和区域,从而避免出现梯度消失问题。
批标准化一般用在非线性映射(激活函数)之前,对输入层数据及隐藏层的输入进行标准化,使结果(输出信号各个维度)的均值为0,方差为1。让每一层的输入有一个稳定的分布会有利于网络的训练。
具体地,批标准化bn的实现过程包括步骤s210-步骤s230:
s210、通过批标准化操作,寻找一个以0为中心的,单位方差的分布作为每一层的激活函数的输入。在训练的时候,用激活的输入x减去这个batch中的均值μ来得到以0为中心的分布。
s210、用x除以这个batch的方差,这里需要一个很小的数来防止除0操作,也就是σ ∈。这样确保了所有的激活函数的输入分布具有单位方差。
s230、将x通过一个线性变换,通过一个缩放和偏移,得到了batchnormalization的输出,从而确保这个归一化的作用会保持住。
需要进一步说明的是,在具体实施过程中,防止除0操作的eps参数设为0.001,而动量因子momentum参数为0.01。
总之,批标准化bn通过规范化让激活函数分布在线性区间,结果就是加大了梯度,加大了探索补偿,加快收敛速度,更容易跳出局部最小,而且,破坏了原来的数据分布,一定程度上缓解过拟合。
在ds卷积块中,深度可分离dw结构的作用是提升通道数,获得更多特征的同时降低参数量和运算成本;而semodul结构的作用是通过网络根据loss去学习特征权重,使得有效的featuremap权重大,无效或效果小的featuremap权重小的方式训练模型达到更好的结果。
在一个具体实施例中,depthwise-pointwise结构,也就是dw卷积;其中,depthwise即为深度卷积(depthwiseconvolution),pointwise即为(pointwiseconvolution);也就是说,dw卷积包括一个深度卷积及一个1×1的卷积,在一个深度卷积前加了一个1*1的“扩张”层,目的是为了提升通道数,获得更多特征;也就是说,深度可分离卷积是一种可分解卷积操作,其可分解为深度卷积和标准卷积,对于标准卷积其卷积核是用在所有的输入通道上,而深度卷积针对每个输入通道采用不同的卷积核,一个卷积核对应一个输入通道,而标准卷积即为采用个1×1的普通卷积。
depthwise(dw)卷积与pointwise(pw)卷积,合起也可以被称作depthwiseseparableconvolution,总的来说,这种操作被称为“depthwiseconvolution”,即depthwise-pointwise结构,缩写“dw”。该结构和常规卷积操作类似,可用来提取特征,但相比于常规卷积操作,其参数量和运算成本较低。
不同于常规卷积操作,深度卷积的一个卷积核负责一个通道,一个通道只被一个卷积核卷积。上面所提到的常规卷积每个卷积核是同时操作输入图片的每个通道。
需要说明的是,dw卷积包括一个深度卷积及一个1×1的卷积,其卷积核大小:3*3;其步幅:1*1;其过滤器数量的设置规则:等于conv_1卷积的过滤器数;偏置bias:无。
举例说明如下:同样是对于一张5×5像素、三通道彩色输入图片(shape为5×5×3),深度卷积首先经过第一次卷积运算,不同于上面的常规卷积,dw完全是在二维平面内进行。卷积核的数量与上一层的通道数相同(通道和卷积核一一对应)。所以一个三通道的图像经过运算后生成了3个featuremap(如果有samepadding则尺寸与输入层相同为5×5),dw完成后的featuremap数量与输入层的通道数相同,无法扩展featuremap。而且这种运算对输入层的每个通道独立进行卷积运算,没有有效的利用不同通道在相同空间位置上的feature信息。因此需要一个1×1的卷积来将这些featuremap进行组合生成新的featuremap。pointwiseconvolution的运算与常规卷积运算非常相似,它的卷积核的尺寸为1×1×m,m为上一层的通道数。所以这里的卷积运算会将上一步的map在深度方向上进行加权组合,生成新的featuremap。有几个卷积核就有几个输出featuremap。
换句话说,就是先对每一个通道进行各自的卷积操作,有多少个通道就有多少个过滤器。得到新的通道featuremaps之后,这时再对这批新的通道featuremaps进行标准的1×1跨通道卷积操作。这种操作是相当有效的,在imagenet1000类分类任务中已经超过了inceptionv3的表现,而且也同时减少了大量的参数。
在另外一个具体实施例中,假设输入通道数为3,要求输出通道数为256,常规操作为直接接一个3×3×256的卷积核,参数量为:3×3×3×256=6,912;而通过深度可分离卷积分两步完成,参数量为:3×3×3 3×1×1×256=795,把参数量降低到九分之一。因此,一个depthwise操作比标准的卷积操作降低不少的参数量,同时得到更好的效果,因为它对每一个通道都进行了学习(每个通道对应一个不同的过滤器),而不是所有通道对应同一个过滤器,得到的特征质量更佳。也就是说,相同的输入,同样的featuremaps,dw卷积的参数更少;因此,在参数量相同的前提下,采用dw卷积的神经网络层数可以做的更深。
在一个具体实施例中,semodule即squeeze-excitation结构,通过网络根据loss去学习特征权重,使得有效的featuremap权重大,无效或效果小的featuremap权重小的方式训练模型达到更好的结果。
此se操作单元包含了两个卷积层,分别是reduce_conv和expand_conv。这两个卷积的核大小和步幅大小都是1*1。但过滤器数量设置存在区别。其中,reduce_conv过滤器数为conv_1卷积的24分之1;而expand_conv的过滤器数等于conv_1卷积的过滤器数量。
给定一个输入x,其特征通道数为c_1,通过一系列卷积等一般变换后得到一个特征通道数为c_2的特征。与传统的cnn不一样的是,接下来通过三个操作来重标定前面得到的特征。
首先是squeeze操作,顺着空间维度来进行特征压缩,将每个二维的特征通道变成一个实数,这个实数某种程度上具有全局的感受野,并且输出的维度和输入的特征通道数相匹配。它表征着在特征通道上响应的全局分布,而且使得靠近输入的层也可以获得全局的感受野,这一点在很多任务中都是非常有用的。其中,与神经元连接的空间大小称为神经元的感受野(receptivefield),它的大小是一个人为设置的超参数,这其实就是滤波器的宽和高。在深度方向上,其大小总是和输入的深度相等。最后强调一下,对待空间维度(宽和高)和深度维度是不同的,连接在空间上是局部的,但是在深度上总是和输入的数据深度保持一致。
其次是excitation操作,它是一个类似于循环神经网络中门的机制。通过参数w来为每个特征通道生成权重,其中参数w被学习用来显式地建模特征通道间的相关性。
最后是一个reweight的操作,将excitation的输出的权重看做是进过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定。
综上所述,ds卷积块就是将两个普通卷积单元之间通过批标准化bn加入了深度可分离卷积和semodule,其中,深度可分离dw结构的作用是提升通道数,获得更多特征的同时降低参数量和运算成本;而semodul结构的作用是通过网络根据loss去学习特征权重,使得有效的featuremap权重大,无效或效果小的featuremap权重小的方式训练模型达到更好的结果。
s120、将ds卷积块有序堆叠组成神经网络结构。根据实际需要,确定所需ds卷积块的数量;也就是说,本申请的神经网络模型为卷积块的有序堆叠。
具体地说,根据实际硬件资源的限制和cnn模型的精度要求,可以将多个ds卷积块有序堆叠,且保证输出通道数单调递增,而输出特征图分辨率呈单调递减趋势,即可得到基于ds结构的紧凑型cnn模型,从而实现模型的压缩。
在深度神经网络中应用ds卷积块结构可减少神经网络参数的数量,同时保证图片特征提取能力。至于在神经网络中使用多少个ds卷积块进行有序堆叠,则需要根据实际硬件资源和对图像模型的识别精度这两个方面综合考虑。
在一个具体实施例中,希望模型的参数数量控制在6兆以下,且图像识别模型在imagenet数据集的top5准确率达到93%的要求,则可用6层ds卷积块进行堆叠。通过网格搜索,每一层的输出通道分别为16、24、64、96、160、320,呈递增趋势。
s130、在神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。
图3示出了本发明的神经网络模型的较佳实施例的结构;
参照图3所示,在上述6个卷积块的结构上,前面加上输入层,后面加上池化层、全连接层以及分类层即可构成完整的神经网络分类模型。
其中,需要说明的是,与全连接层相连接的conv_2卷积,通过普通卷积创建expand卷积和project卷积,然后再对上述卷积添加批标准化bn操作以达到内部数据归一化;以提升与全连接层的连接效果。
在具体实施过程中,将上述6个ds卷积块堆叠组成的神经网络结构应用于arcface人脸识别项目,旨在高效提取人脸特征。其中,对于本领域技术人员而言,arcface人脸识别项目是公知技术,其技术细节参见,https://github.com/luckycallor/insightface-tensorflow;在此不再赘述。
最终,可实现320维的人脸特征数据特征提取,使用casia-webface公开数据集训练得到新模型;在准确率方面,新模型在lfw验证集上的准确率达99.52%,与原模型的准确率相当;但在参数数量方面,新模型参数只有5.1兆,相较于原模型的54兆,新模型的参数压缩率达到了10倍左右。
综上所述,基于深度可分离卷积和轻量级注意力结构,联合使用普通卷积和bn操作运算,最终设计出紧凑型的cnn组件-ds卷积块,将卷积块的有序堆叠可实现参数量较少但是精度基本不受损的神经网络模型,可以在保证图片特征提取能力的同时,减少神经网络参数的数量,大大降低神经网络模型的显存占用和浮点运算量,从而实现cnn模型的存储和运算优化的技术效果。
本发明提供一种基于ds结构的cnn模型压缩方法,应用于一种电子装置4。
图4示出了根据本发明基于ds结构的cnn模型压缩方法较佳实施例的应用环境。
参照图4所示,在本实施例中,电子装置4可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。
该电子装置4包括:处理器42、存储器41、通信总线43及网络接口44。
存储器41包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器41等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子装置4的内部存储单元,例如该电子装置4的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子装置4的外部存储器41,例如所述电子装置4上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。
在本实施例中,所述存储器41的可读存储介质通常用于存储安装于所述电子装置4的基于ds结构的cnn模型压缩程序40等。所述存储器41还可以用于暂时地存储已经输出或者将要输出的数据。
处理器42在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行存储器41中存储的程序代码或处理数据,例如执行基于ds结构的cnn模型压缩程序40等。
通信总线43用于实现这些组件之间的连接通信。
网络接口44可选地可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该电子装置4与其他电子设备之间建立通信连接。
图4仅示出了具有组件41-44的电子装置4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
可选地,该电子装置4还可以包括用户接口,用户接口可以包括输入单元比如键盘(keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。
可选地,该电子装置4还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(organiclight-emittingdiode,oled)触摸器等。显示器用于显示在电子装置4中处理的信息以及用于显示可视化的用户界面。
可选地,该电子装置4还可以包括射频(radiofrequency,rf)电路,传感器、音频电路等等,在此不再赘述。
在图4所示的装置实施例中,作为一种计算机存储介质的存储器41中可以包括操作系统、以及基于ds结构的cnn模型压缩程序40;处理器42执行存储器41中存储的基于ds结构的cnn模型压缩程序40时实现如下步骤:s110、通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;其中,ds卷积块包括:卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn;s120、将ds卷积块有序堆叠形成神经网络结构;s130、在神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。
在其他实施例中,基于ds结构的cnn模型压缩程序40还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器41中,并由处理器42执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。基于ds结构的cnn模型压缩程序40可以分为ds卷积块形成模块、神经网络结构形成模块和神经网络模型形成模块;其中,ds卷积块形成模块用于通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;其中,ds卷积块包括:卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn。神经网络结构形成模块用于将将ds卷积块有序堆叠形成神经网络结构。神经网络模型形成模块用于在神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。
此外,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质中包括基于ds结构的cnn模型压缩程序,所述基于ds结构的cnn模型压缩程序被处理器执行时实现如下操作:s110、通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;其中,ds卷积块包括:卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn;s120、将ds卷积块有序堆叠形成神经网络结构;s130、在神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。
本发明之计算机可读存储介质的具体实施方式与上述基于ds结构的cnn模型压缩方法、电子装置的具体实施方式大致相同,在此不再赘述。
总的来说,本发明基于ds结构的cnn模型压缩方法、电子装置及计算机可读存储介质通过基于深度可分离卷积和轻量级注意力结构,联合使用普通卷积和bn操作运算,最终设计出紧凑型的cnn组件-ds卷积块,将卷积块的有序堆叠可实现参数量较少但是精度基本不受损的神经网络模型,可以在保证图片特征提取能力的同时,减少神经网络参数的数量,大大降低神经网络模型的显存占用和浮点运算量,从而实现cnn模型的存储和运算优化的技术效果。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
1.一种基于ds结构的cnn模型压缩方法,应用于电子装置,其特征在于,所述方法包括:
s110、通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;其中,所述ds卷积块包括:卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn;
s120、将所述ds卷积块有序堆叠形成神经网络结构;
s130、在所述神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。
2.根据权利要求1所述的基于ds结构的cnn模型压缩方法,其特征在于,
当所述ds卷积块为所述神经网络模型的第一个卷积块时,所述卷积conv_1的过滤器数量为2的倍数;
当所述ds卷积块为所述神经网络模型的除第一个之外的其他的卷积块时,所述卷积conv_1的过滤器数量等于上一个卷积块的输出通道数量的6倍。
3.根据权利要求1所述的基于ds结构的cnn模型压缩方法,其特征在于,所述激活函数为swish激活函数,
所述swish激活函数的公式为:
f(x)=x×sigmoid(βx)
其中,β为x的缩放参数,β=1;sigmoid是非线性的激活函数。
4.根据权利要求1所述的基于ds结构的cnn模型压缩方法,其特征在于,所述dw卷积包括一个深度卷积及一个加在所述深度卷积前的1*1的卷积。
5.根据权利要求1所述的基于ds结构的cnn模型压缩方法,其特征在于,所述semodule包括reduce_conv和expand_conv两个卷积层;其中,
所述reduce_conv卷积层的过滤器数量为所述卷积conv_1的过滤器数量的1/24;
所述expand_conv卷积层的过滤器数量等于所述卷积conv_1的过滤器数量。
6.一种电子装置,其特征在于,该电子装置包括:存储器、处理器,所述存储器中存储有基于ds结构的cnn模型压缩程序,所述基于ds结构的cnn模型压缩程序被所述处理器执行时实现如下步骤:
s110、通过普通卷积和批标准化bn运算,将dw卷积和semodule形成ds卷积块;其中,ds卷积块包括:卷积conv_1、批标准化bn、激活函数、dw卷积、批标准化bn、激活函数、semodule、卷积conv_2和批标准化bn;
s120、将所述ds卷积块有序堆叠形成神经网络结构;
s130、在所述神经网络结构上加入输入层、池化层、全连接层及分类层,形成神经网络模型。
7.根据权利要求6所述的电子装置,其特征在于,
当所述ds卷积块为所述神经网络模型的第一个卷积块时,所述卷积conv_1的过滤器数量为2的倍数;
当所述ds卷积块为所述神经网络模型的除第一个卷积块之外的其他卷积块时,所述卷积conv_1的过滤器数量等于上一个卷积块的输出通道数量的6倍。
8.根据权利要求6所述的电子装置,其特征在于,
所述激活函数为swish激活函数,
所述swish激活函数的公式为:
f(x)=x×sigmoid(βx)
其中,β为x的缩放参数,β=1;sigmoid是非线性的激活函数。
9.根据权利要求6所述的电子装置,其特征在于,所述dw卷积包括一个深度卷积及一个加在所述深度卷积前的1*1的卷积。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序包括基于ds结构的cnn模型压缩程序,所述基于ds结构的cnn模型压缩程序被处理器执行时,实现如权利要求1至5中任一项所述的基于ds结构的cnn模型压缩方法的步骤。
技术总结