本发明涉及计算机视觉领域,尤其涉及一种深度卷积神经网络的压缩方法、系统、设备及介质。
背景技术:
随着计算机视觉技术的发展和智能设备的普及,卷积神经网络的应用领域正在变得越来越广泛。这种广泛不仅体现在运用卷积神经网络解决问题领域的广泛,更体现在运用卷积神经网络的设备种类的广泛。当前卷积神经网络不止需要运行在计算资源充足的超级计算机/服务器上,更需要在更多的手机/手表等计算资源,能耗有限的智能移动终端中运行。此时,除了对卷积神经网络的精确度有要求外,人们对卷积神经网络的轻量化的要求日益提高,即设计出更加轻便的卷积神经网络模型,使其能够满足智能移动终端中的部署要求。
目前,通常采用网络压缩技术设计轻量化的卷积神经网络架构,主要是基于剪枝与量化的手段,例如deepcompression方法通过综合参数剪枝与量化两种降低参数内存的方法,具有较好的压缩效果。压缩后的轻量化卷积神经网络能有效地降低其运行的时间与硬件成本,大大地提高卷积神经网络的速度和效能;然而,网络压缩需要建立在已经训练好的复杂神经网络的基础上,且需要反复剪枝并重新训练,导致压缩神经网络十分费时费力,且最终压缩过后的网络结构不能确定。除此之外,网络压缩算法的参数量化实际是将参数进行聚类并存储聚类索引与聚类中心,因此运行时的参数依然需要压缩前的内存数量,量化的压缩只起到了存储容量压缩而不是运行内/显存压缩。
因此,现有的压缩模型在应用于移动终端时,通常会遇到剪枝后的参数作为稀疏矩阵存储无法并行,存储稀疏矩阵索引需要额外空间;参数量化不彻底导致高内存占用;模型压缩过程中需要进行大量重复且费时费力的预训练;压缩效果不是训练时可知的,即压缩模型的最终的资源占用很难精确估计,这对需要严密控制内存占用与功耗的边缘计算设备是不可接受的等问题。
技术实现要素:
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种卷积神经网络压缩方法、系统、电子设备和计算机存储介质,可以解决现有的压缩模型在应用于移动终端时,存在的剪枝后的参数无法并行存储,参数量化不彻底,内存占用较高,以及模型压缩效果确定等问题。
为实现上述目的及其他相关目的,本发明提供一种卷积神经网络压缩方法,适用于对训练后的待压缩卷积神经网络模型进行压缩,所述方法包括:对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分,获得各模型分区;对所述待压缩卷积神经网络模型根据所述模型分区进行分区压缩,获得轻量化模型。
于本发明一实施例中,所述对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分包括:将所述待压缩卷积神经网络模型中的输入层划分为输入分区;将所述待压缩卷积神经网络模型中位于所述输入分区至第i卷积层之间的隐藏层划分为第一分区;将所述待压缩卷积神经网络模型中所述第i卷积层及所述第i卷积层与输出层之间的隐藏层划分为第二分区;将所述待压缩卷积神经网络模型中的所述输出层划分为输出分区。
于本发明一实施例中,所述分区压缩包括:对所述输入分区和所述输出分区均不做压缩处理;对所述第一分区内的各卷积层分别替换为深度可分离卷积层;对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层。
于本发明一实施例中,所述第i卷积层的确定方法为任意的模型选择方法。
于本发明一实施例中,所述模型选择方法包括k折交叉验证方法。
于本发明一实施例中,所述对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层的实现方式包括采用二值化神经网络模型将已替换为深度可分离卷积的各卷积层中的参数量化为﹢1或﹣1。
于本发明一实施例中,所述卷积神经网络压缩方法还包括对压缩后的所述轻量化模型采用任意优化器进行训练,获得训练后的轻量化模型。
于本发明一实施例中,所述卷积神经网络模型压缩方法还包括在对所述第二分区进行压缩时采用优化策略对压缩方法进行优化。
于本发明一实施例中,所述优化策略包括将所述第二分区中除第二分区输入层和第二分区输出层外其他的卷积层数按照第一比例缩减,同时将各卷积层中用于量化的卷积核的通道数按照所述第一比例进行扩展。
于本发明一实施例中,所述第一比例优选为40%至60%之间的比例。
本发明还提供一种卷积神经网络压缩系统,适用于对训练后的待压缩卷积神经网络模型进行压缩,所述系统包括:模型输入模块,用于输入及获取所述待压缩卷积神经网络模型的结构和参数信息;分区模型,用于对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分,获得各模型分区;分区压缩模块,用于对所述待压缩卷积神经网络模型根据所述模型分区进行分区压缩,获得轻量化模型。
于本发明一实施例中,所述对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分包括:将所述待压缩卷积神经网络模型中的输入层划分为输入分区;将所述待压缩卷积神经网络模型中位于所述输入分区至所述第i卷积层之间(不包含所述第i卷积层)的隐藏层划分为第一分区;将所述待压缩卷积神经网络模型中所述第i卷积层及所述第i卷积层与输出层之间的隐藏层划分为第二分区;将所述待压缩卷积神经网络模型中的所述输出层划分为输出分区。
于本发明一实施例中,分区压缩包括:对所述输入分区和所述输出分区均不做压缩处理;对所述第一分区内的各卷积层分别替换为深度可分离卷积层;对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层。
于本发明一实施例中,所述第i卷积层的确定方法为任意模型选择法。
于本发明一实施例中,所述对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层的实现方式包括采用二值化神经网络模型将已替换为深度可分离卷积的各卷积层进行参数二值量化。
于本发明一实施例中,所述卷积神经网络模型压缩系统还包括训练模块,用于对压缩后的所述轻量化模型采用任意优化器进行训练,获得训练后的轻量化模型。
于本发明一实施例中,所述卷积神经网络模型压缩系统还包括优化模块,用于在对所述第二分区进行压缩时采用优化策略对压缩方法进行优化。
于本发明一实施例中,所述优化策略包括将所述第二分区中除第二分区输入层和第二分区输出层外其他的卷积层数按照第一比例缩减,同时将各卷积层中用于量化的卷积核的通道数按照所述第一比例进行扩展。
此外,本发明还提供一种电子设备和一种计算机存储介质,所述电子设备包括:处理器、通信接口、存储器以及通信总线;所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;所述存储器用于存放至少一指令;所述指令使所述处理器执行如上所述卷积神经网络模型压缩方法的各个步骤。所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述指令使所述处理器执行如上所述卷积神经网络模型压缩方法的各个步骤。
如上所述,本发明提供了一种卷积神经网络模型压缩方法,以及利用上述方法设计的所述卷积神经网络模型压缩系统、电子设备及存储介质。其中,所述卷积神经网络模型压缩方法为一种结合度可分离卷积以及二值化神经网络的深度网络压缩方法,通过将待压缩的深度卷积神经网络分解为输入分区、第一分区、第二分区以及输出分区;再通过不同的压缩方法分别压缩各模型分区,获得压缩后的轻量化模型。
与现有技术相比,本发明提供的所述卷积神经网络模型压缩方法具有以下有益效果:
1)、本发明通过深度可分离卷积可以降低模型的参数数量,使得减少的参数数量变得固定,且模型的参数也无需使用稀疏矩阵进行存储,节省了参数索引值带来的额外开销,并方便之后模型部署运用时使用并行计算;
2)、本发明通过二值神经网络进行参数量化,不同于哈希网络以及参数聚类等方法进行的网络量化只能在模型存储时通过存储模型参数的索引值节约存储空间而不能减少运行时的内存占用;本发明的量化方法可以在存储和运行时都达到理想的压缩状态,进一步提高模型的运行效率。
3)、本发明通过对不同位置采取不同压缩策略的压缩方法,在保持高压缩率的同时维持了与原本模型的一致性以及维持了原模型的准确率,从而克服了二值神经网络精度低的缺陷。
4)、本发明的压缩结果,包括其参数数量,内存占用(精确到比特)都可以在设计时通过计算求得,且训练时压缩率时可知且固定的。克服了deepcompression等压缩方法需要逐步迭代的复杂性和压缩结果的不确定性,方便后续的轻量化系统开发者控制运行成本。
综上所述,本发明提供了一种卷积神经网络模型压缩方法可以实现了对任意可知的卷积神经网络的高效训练及可知压缩,具有可靠性高、成本低、易于实现等优点,为后续在移动设备等计算资源有限的终端上部署深度卷积神经网络提供了解决方案。
附图说明
图1显示为本发明一种卷积神经网络模型压缩方法的框架图
图2显示为本发明一种卷积神经网络模型压缩方法于一实施例的流程示意图
图3显示为一训练可知的vggnet模型的网络结构示意图
图4显示为采用本发明所述卷积神经网络模型压缩方法获得的压缩后的vggnet模型的网络结构示意图
图5显示为本发明的所述卷积神经网络模型压缩方法与其他的压缩方法进行对比测试后的测试结果(最高精度和压缩比)散点图
图6显示为本发明一种卷积神经网络模型压缩系统于一实施例的功能结构示意图
图7显示为本发明一种卷积神经网络模型压缩系统于另一实施例的功能结构示意图
元件标号说明
s101~s102步骤
800卷积神经网络模型压缩系统
810模型输入模块
820分区模型
830分区压缩模块
840训练模块
850优化模块
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本发明提供了一种卷积神经网络模型压缩方法,适用于对训练可知的待压缩卷积神经网络模型进行压缩处理。请参阅图1,为所述卷积神经网络模型压缩方法对所述待压缩卷积神经网络模型进行压缩的框架图,通过将待压缩的深度卷积神经网络分解为输入分区、第一分区、第二分区以及输出分区;再通过不同的压缩方法分别压缩各模型分区,获得压缩后的轻量化模型。
请参阅图2,为所述卷积神经网络模型压缩方法的流程示意图,所述方法包括以下步骤:
s101,对所述待压缩的卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分,以获得各模型分区。
所述卷积层在所述待压缩的卷积神经网络模型(以下简称待压缩模型)中的相对位置为所述卷积层相对于模型输入层和/或输出层的相对位置。
具体的,将所述待压缩模型中的输入层划分为输入分区,用于获取输入所述待压缩模型的输入图像信息。所述输入层为所述待压缩模型中的第一卷积层。
将所述待压缩模型中位于所述输入分区至所述第i卷积层之间(不包含所述第i卷积层)的隐藏层划分为第一分区,用以接收并处理所述输入图像中的纹理信息,生成低级的语义信息,并将所述低级语义信息传递至后续的模型分区中。所述第一分区包括第一分区输入层和第一分区输出层,分别为所述第一分区内的第一层深度可分离卷积层,以及所述第一分区内的最后一层深度可分离卷积层。
将所述待压缩模型中所述第i卷积层及其与输出分区之间的隐藏层划分为第二分区,用以接收所述第一分区传递的所述低级语义信息,并处理获取生成高级的语义信息,以及将所述高级语义信息传递至输出分区。所述第二分区包括第二分区输入层和第二分区输出层,分别为所述第二分区内的第一层二值化深度可分离卷积层,以及所述第二分区内的最后一层二值化深度可分离卷积层。
将所述待压缩模型中的输出层划分为输出分区,将接收到的所述输入图像的高级语义信息进行输出。所述输出层为所述待压缩模型中最后的全连接层。
其中,所述第i卷积层为所述待压缩模型中除输入层和输出层外的中间卷积层。
所述第i卷积层的确定方法为任意的模型选择方法。在具体实现时,所述模型选择方法优选为k折交叉验证方法,具有易于实现的优点。
s102,对所述待压缩模型根据各所述模型分区进行分区压缩,以获得轻量化的卷积神经网络模型。
所述分区压缩过程为一次性压缩完成,包括:
1)、对所述输入分区不做压缩处理,维持其在所述待压缩模型中的参数特征。即对所述输入分区中的第一卷积层不做压缩处理,维持其在所述待压缩模型中的参数特征,以实现最大限度地保留所述输入图像中的低级的纹理信息,并将纹理信息传入所述第一分区进行处理。
2)、对所述第一分区内的各卷积层分别替换为深度可分离卷积层。
为将所述第一分区内的各原始卷积层的卷积层分别替换为一个逐深度卷积层和一个逐点卷积层的叠加,并且在所述逐深度卷积层和所述逐点卷积层后均连接bn层和激活层。即将标准的卷积操作分解为逐深度卷积过程和逐点卷积过程,可以大大地减少各卷积层中参数数量,从而有效地减少模型的参数计算量,提升计算效率。
具体的,所述深度可分离卷积中所述逐深度卷积层包含n组a*b*1的卷积核,各组卷积核与该卷积层接收的输入特征图中对应的图像通道分别进行卷积,得到的卷积结果再与所述逐点卷积层中m组的1*1*n的卷积核进行卷积,获得深度可分离卷积后的结果。其中,a和b分别为所述逐深度卷积中卷积核的长宽大小,n与所述逐深度卷积层接收的输入特征图的通道数相同,m与压缩前原卷积层中包含的原卷积核组数相同。
进一步的,设置所述第一分区输入层的输入通道数与对应的压缩前原卷积层的输入通道数相同,以及设置所述第一分区输出层的输出通道数与对应的压缩前原卷积层的输出通道数相同,以使所述待压缩模型在压缩处理后能更好地保持所述模型结构的一致性,以及保证模型运行的完整性。
3)、对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层。
在将所述第二分区内的各个原始卷积层分别替换为深度可分离卷积层的基础上,采用二值化神经网络模型将已替换为深度可分离卷积的各卷积层进行参数二值量化。
具体的,采用二值化函数将第二分区输入层、第二分区输出层和第二分区中间层中的参数分别量化为﹢1或﹣1,以使各参数能在1bit单位的内存中进行运算,从而不仅压缩了参数存储所需的内存大小,同时也压缩了参数运算所需的内存大小。
于本实施例中,所述二值化神经网络模型将所述深度可分离卷积层中的激活函数替换为hardtanh,使所述二值化神经网络模型包含具有饱和现象的直通估计器,实现在对二值化深度可分离卷积模型训练时,即在计算参数梯度时,对模过大的权重参数进行梯度截断,从而更好地实现对所述二值化深度可分离卷积模型的快速训练。hardtanh在所述输入特征值相差明显时,可在循环过程中可以不断扩大特征效果,使训练效果更优。
进一步的,本发明所提供的所述卷积神经网络模型压缩方法还包括对分块压缩后得到的所述轻量化卷积神经网络模型基于训练数据采用任意优化器进行模型训练;在具体实现时,所述优化器可以包括adam、随机梯度下降法(stochasticgradientdescent,sgd)等。
需要注意的是,相对于压缩前的所述待压缩模型,压缩后的所述轻量化模型在进行模型训练时需要将学习率调高,且降低所述训练数据的输入批次。在具体实现时,可以将所述学习效率调高10倍,且将模型的训练数据的输入批次减少为原来的1/2。
于另一实施例中,为本发明提供的所述卷积神经网络模型压缩方法在如上述实施例的所述卷积神经网络模型压缩方法的基础上,还包括在对所述第二分区压缩时采用优化策略对压缩方法进行优化,提升所述压缩后模型的精度、运行效率等性能。
具体的,所述优化策略包括将所述第二分区中除所述第二分区输入层和所述第二分区输出层外其他的卷积层数按照第一比例缩减,同时将各卷积层中用于量化的卷积核的通道数按照相同的第一比例进行扩展,即将所述卷积核的个数按照相同的比例进行扩展,在压缩参数内存空间的同时,可以提高压缩后的神经网络模型的检测精度。
进一步的,所述优化策略中,对第二分区中卷积层进行缩减的第一比例优选为40~60%之间比例值;相比于其他缩减比例下的模型检测效果,采用第一比例的优化策略对所述待压缩模型进行压缩可使压缩后的所述卷积神经网络模型具有更高的模型检测效果,在大大地压缩参数内存空间的同时,可以有效地提升模型的分类精度。
为了进一步验证本发明提供的所述卷积神经网络压缩方法的有效性,基于vggnet这一常用的网络模型,分别采用所述卷积神经网络压缩方法与目前常用的其他压缩方法分别进行压缩,获得轻量化的vggnet模型。请参阅图3,为一训练可知的vggnet模型的网络结构。请参阅图4所示,为采用本发明所述方法获得的压缩后的vggnet模型的网络结构,最左边为整个模型的网络结构,中间和最右边分别为深度可分离卷积层和二值化深度可分离卷积层的层结构。其中conv2d是待压缩模型的原卷积层,conv_dw是深度可分离卷积层,bconv_dw是二值化深度可分离卷积层。将各压缩后的vggnet模型分别在图像数据集进行训练与测试,获取压缩后模型以及压缩前模型能够达到的最高精度和压缩比的对比结果,将对比结果绘制为如图5所示的散点图,可以证明本发明所述卷积神经网络压缩方法压缩后的卷积神经网络模型在保证有较好分类精度的同时,具有最高的压缩比,能极大地缩减模型参数的内存空间。
请参阅图6,本发明还提供一种卷积神经网络模型压缩系统800,用于对训练可知的所述待压缩卷积神经网络模型进行压缩,以获取轻量化的卷积神经网络结构,所述系统包括模型输入模块810、分区模块820以及分区压缩模块830。
所述模型输入模块810用于获取所述待压缩的卷积神经网络模型相关的结构和参数信息,包括卷积层层数、各卷积层的参数信息等。
所述分区模块820用于对获取的所述待压缩模型根据所述卷积层在模型中的相对位置进行区块划分,获得模型分区。
所述模型分区包括输入分区、第一分区、第二分区和输出分区。
其中,所述输入分区为所述待压缩模型中的输入层,用于获取输入所述待压缩模型的输入图像信息。所述输入层为所述待压缩模型中的第一卷积层。
所述第一分区为所述待压缩模型中位于所述输入分区至所述第i卷积层之间(不包含所述第i卷积层)的各隐藏层,用以处理所述输入图像中的纹理信息,生成低级的语义信息,并将所述低级语义信息传递至所述第二分区。所述第一分区包括第一分区输入层和第一分区输出层,分别为所述第一分区内的第一层深度可分离卷积层,以及所述第一分区内的最后一层深度可分离卷积层。
所述第二分区为所述待压缩模型中所述第i卷积层及其与所述输出分区之间的各隐藏层,用以接收所述第一分区传递的所述低级语义信息,并处理获取生成高级的语义信息,以及将所述高级语义信息传递至输出分区。所述第二分区包括第二分区输入层和第二分区输出层,分别为所述第二分区内的第一层二值化深度可分离卷积层,以及所述第二分区内的最后一层二值化深度可分离卷积层。
所述输出分区为所述待压缩模型中的输出层,将接收到的所述输入图像的高级语义信息进行输出。所述输出层为所述待压缩模型中最后的全连接层。
其中,所述第i卷积层为所述待压缩模型除输入层和输出层外的中间卷积层。
所述第i卷积层的确定方法为任意的模型选择方法;在具体实现时,所述模型选择方法优选为k折交叉验证方法,具有易于实现的优点。
所述分区压缩模块830用于对所述待压缩模型的各所述分区分别进行分区压缩,以获得轻量化的卷积神经网络模型。
所述分区压缩包括:
1)、对所述输入分区不做压缩处理,维持其在所述待压缩模型中的参数特征。即对所述输入分区中的第一卷积层不做压缩处理,维持其在所述待压缩模型中的参数特征,以实现最大限度地保留所述输入图像中的低级的纹理信息,并将纹理信息传入所述第一分区进行处理。
2)、对所述第一分区内的各卷积层分别替换为深度可分离卷积层。
为将所述第一分区内的各原始卷积层的卷积层分别替换为一个逐深度卷积层和一个逐点卷积层的叠加,并且在所述逐深度卷积层和所述逐点卷积层后均连接bn层和激活层。即将标准的卷积操作分解为逐深度卷积过程和逐点卷积过程,可以大大地减少各卷积层中参数数量,从而有效地减少模型的参数计算量,提升计算效率。
具体的,所述深度可分离卷积中所述逐深度卷积层包含n组a*b*1的卷积核,各组卷积核与该卷积层接收的输入特征图中对应的图像通道分别进行卷积,得到的卷积结果再与所述逐点卷积层中m组的1*1*n的卷积核进行卷积,获得深度可分离卷积后的结果。其中,a和b分别为所述逐深度卷积中卷积核的长宽大小,n与所述逐深度卷积层接收的输入特征图的通道数相同,m与压缩前原卷积层中包含的原卷积核组数相同。
进一步的,设置所述第一分区输入层的输入通道数与对应的压缩前原卷积层的输入通道数相同,以及设置所述第一分区输出层的输出通道数与对应的压缩前原卷积层的输出通道数相同,以使所述待压缩模型在压缩处理后能更好地保持所述模型结构的一致性,以及保证模型运行的完整性。
3)、对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层。
在将所述第二分区内的各个原始卷积层分别替换为深度可分离卷积层的基础上,采用二值化神经网络模型将已替换为深度可分离卷积的各卷积层进行参数二值量化。
具体的,采用二值化函数将第二分区输入层、第二分区输出层和第二分区中间层中的参数分别量化为﹢1或﹣1,以使各参数能在1bit单位的内存中进行运算,从而不仅压缩了参数存储所需的内存大小,同时也压缩了参数运算所需的内存大小。
进一步的,所述二值化函数优选为确定性二值化函数,使参数量化过程更易于实现。
进一步的,所述二值化函数还可以为随机性二值化函数。
于本实施例中,所述二值化神经网络模型将所述深度可分离卷积层中的激活函数替换为hardtanh,使所述二值化神经网络模型包含具有饱和现象的直通估计器,实现在对二值化深度可分离卷积模型训练时,即在计算参数梯度时,对模过大的权重参数进行梯度截断,从而达到对所述二值化深度可分离卷积模型的快速训练。hardtanh在特征相差明显时,可在循环过程中可以不断扩大特征效果,使训练效果更优。
进一步的,本发明所提供的所述卷积神经网络模型压缩系统还包括训练模型(图中未标识),用以对压缩后的所述轻量化卷积神经网络模型采用任意优化器进行训练;在具体实现时,所述优化器可以包括adam、随机梯度下降法(stochasticgradientdescent,sgd)等。
需要注意的是,相对于压缩前的所述待压缩模型,所述训练模块中所述轻量化模型在进行模型训练时需要调高学习率,且降低所述训练数据的输入批次。在具体实现时,可以将所述学习效率调高10倍,且将模型的训练数据的输入批次减少为原来的1/2。
请参阅图7,为本发明提供的所述卷积神经网络模型压缩系统于另一实施例的结构示意图,所述卷积神经网络模型压缩系统在如上述实施例中所述卷积神经网络模型压缩系统的基础上还包括优化模块,用于在对所述第二分区压缩时采用优化策略对压缩方法进行优化,以提升所述压缩后模型的精度、运行效率等性能。
具体的,所述优化策略包括将所述第二分区中除所述第二分区输入层和所述第二分区输出层外其他的卷积层数按照第一比例缩减,同时将各卷积层中用于量化的卷积核的通道数按照相同的第一比例进行扩展,即将所述卷积核的个数按照相同的比例进行扩展,在压缩参数内存空间的同时,可以提高压缩后的神经网络模型的检测精度。
进一步的,所述优化模型的所述优化策略中,对第二分区中卷积层进行缩减的第一比例设置优选为40~60%之间;相比于其他缩减比例下的模型检测效果,采用第一比例的优化策略对所述待压缩模型进行压缩可使压缩后的所述卷积神经网络模型具有更高的模型检测效果,在大大地压缩参数内存空间的同时,可以有效地提升模型的分类精度。
本发明提供一种电子设备,所述电子设备包括:处理器、存储器、通信接口和系统总线;存储器和通信接口通过系统总线与处理器连接并完成相互间的通信,所述存储器用于存放至少一指令,所述指令使所述处理器执行如上所述卷积神经网络模型压缩方法的各个步骤。
上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器调用时实现所述卷积神经网络模型压缩方法。所述计算机可读存储介质可能包含随机存取存储器(randomaccessmemory,简称ram),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
综上所述,本发明提出的卷积神经网络模型压缩、系统、电子设备和存储介质,可以降低卷积神经网络模型的参数数量,使模型参数无需使用稀疏矩阵进行存储,从而节省了参数索引值的存储空间;采用二值神经网络进行参数量化可以使模型存储和运行时都达到理想的压缩状态,进一步提高模型的运行效率,同时也兼顾了模型的准确率。本发明可以解决现有的压缩模型在应用于移动终端时,存在的剪枝后的参数无法并行存储,参数量化不彻底,内存占用较高,以及模型压缩效果确定等问题,具有可靠性高、成本低、易于实现等优点。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
1.一种卷积神经网络压缩方法,其特征在于,适用于对训练后的待压缩卷积神经网络模型进行压缩,所述方法包括:
对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分,获得各模型分区;
对所述待压缩卷积神经网络模型根据所述模型分区进行分区压缩,获得轻量化模型。
2.根据权利要求1所述的一种卷积神经网络压缩方法,其特征在于,所述对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分包括:
将所述待压缩卷积神经网络模型中的输入层划分为输入分区;
将所述待压缩卷积神经网络模型中位于所述输入分区至第i卷积层之间的隐藏层划分为第一分区;
将所述待压缩卷积神经网络模型中所述第i卷积层及所述第i卷积层与输出层之间的隐藏层划分为第二分区;
将所述待压缩卷积神经网络模型中的所述输出层划分为输出分区。
3.根据权利要求2所述的一种卷积神经网络压缩方法,其特征在于,所述分区压缩包括:
对所述输入分区和所述输出分区均不做压缩处理;
对所述第一分区内的各卷积层分别替换为深度可分离卷积层;
对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层。
4.根据权利要求3所述的一种卷积神经网络压缩方法,其特征在于:所述第i卷积层的确定方法为任意的模型选择方法。
5.根据权利要求4所述的一种卷积神经网络压缩方法,其特征在于:所述模型选择方法包括k折交叉验证方法。
6.根据权利要求3所述的一种卷积神经网络压缩方法,其特征在于:所述对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层的实现方式包括采用二值化神经网络模型将已替换为深度可分离卷积的各卷积层中的参数量化为﹢1或﹣1。
7.根据权利要求3所述的一种卷积神经网络压缩方法,其特征在于:所述卷积神经网络压缩方法还包括对压缩后的所述轻量化模型采用任意优化器进行训练,获得训练后的轻量化模型。
8.根据权利要求3所述的一种卷积神经网络压缩方法,其特征在于:所述卷积神经网络模型压缩方法还包括在对所述第二分区进行压缩时采用优化策略对压缩方法进行优化。
9.根据权利要求8所述的一种卷积神经网络压缩方法,其特征在于:所述优化策略包括将所述第二分区中除第二分区输入层和第二分区输出层外其他的卷积层数按照第一比例缩减,同时将各卷积层中用于量化的卷积核的通道数按照所述第一比例进行扩展。
10.根据权利要求9所述的一种卷积神经网络压缩方法,其特征在于:所述第一比例优选为40%至60%之间的比例。
11.一种卷积神经网络压缩系统,其特征在于,适用于对训练后的待压缩卷积神经网络模型进行压缩,所述系统包括:
模型输入模块,用于输入及获取所述待压缩卷积神经网络模型的结构和参数信息;
分区模型,用于对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分,获得各模型分区;
分区压缩模块,用于对所述待压缩卷积神经网络模型根据所述模型分区进行分区压缩,获得轻量化模型。
12.根据权利要求11所述的一种卷积神经网络压缩系统,其特征在于,所述对所述待压缩卷积神经网络模型根据各卷积层在模型中的相对位置进行区块划分包括:
将所述待压缩卷积神经网络模型中的输入层划分为输入分区;
将所述待压缩卷积神经网络模型中位于所述输入分区至所述第i卷积层之间的隐藏层划分为第一分区;
将所述待压缩卷积神经网络模型中所述第i卷积层及所述第i卷积层与输出层之间的隐藏层划分为第二分区;
将所述待压缩卷积神经网络模型中的所述输出层划分为输出分区。
13.根据权利要求11所述的一种卷积神经网络压缩系统,其特征在于,分区压缩包括:
对所述输入分区和所述输出分区均不做压缩处理;
对所述第一分区内的各卷积层分别替换为深度可分离卷积层;
对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层。
14.根据权利要求11所述的一种卷积神经网络压缩系统,其特征在于:所述第i卷积层的确定方法为任意的模型选择方法。
15.根据权利要求13所述的一种卷积神经网络压缩系统,其特征在于:所述对所述第二分区内的各卷积层分别替换为二值化深度可分离卷积层的实现方式包括采用二值化神经网络模型将已替换为深度可分离卷积的各卷积层进行参数二值量化。
16.根据权利要求13所述的一种卷积神经网络压缩系统,其特征在于:所述卷积神经网络模型压缩系统还包括训练模块,用于对压缩后的所述轻量化模型采用任意优化器进行训练,获得训练后的轻量化模型。
17.根据权利要求13所述的一种卷积神经网络压缩系统,其特征在于:所述卷积神经网络模型压缩系统还包括优化模块,用于在对所述第二分区进行压缩时采用优化策略对压缩方法进行优化。
18.根据权利要求15所述的一种卷积神经网络压缩系统,其特征在于:所述优化策略包括将所述第二分区中除第二分区输入层和第二分区输出层外其他的卷积层数按照第一比例缩减,同时将各卷积层中用于量化的卷积核的通道数按照所述第一比例进行扩展。
19.一种电子设备,其特征在于,包括:处理器、通信接口、存储器以及通信总线;所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;所述存储器用于存放至少一指令;所述指令使所述处理器执行如权利要求1至10中任一项所述卷积神经网络压缩方法。
20.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述卷积神经网络压缩方法。
技术总结