神经网络的压缩装置及方法制造方法及图纸

技术编号:19859215 阅读:24 留言:0更新日期:2018-12-22 12:04
一种神经网络的压缩装置及方法,其中,该装置包括:因子矢量确定单元,分别确定用于对神经网络中每一层的滤波器和滤波器形状进行衰减的第一因子矢量和第二因子矢量,其中,第一因子矢量包括衰减因子c=1和第一衰减因子α,第二因子矢量包括衰减因子c和第一衰减因子β,其中α和β均大于0且小于1;衰减单元,用于根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减;剪枝单元,用于对衰减后的滤波器和滤波器形状进行剪枝,确定压缩后的神经网络。本发明专利技术基于渐进抑制学习,对神经网络进行压缩,在网络训练过程中加入削弱权值的第一和第二衰减因子,将权值衰减为零从而可将其剪枝,从而得到结构精简的神经网络模型。

【技术实现步骤摘要】
神经网络的压缩装置及方法
本专利技术涉及神经网络领域,尤其涉及一种神经网络的压缩装置及方法。
技术介绍
近些年,深度神经网络(DNN)在计算机视觉领域取得了显著的成绩,而这突破性的进展则是因为人们拥有了大量的训练数据和强有力的计算资源。同时深度神经网络所需的存储空间和计算量也在不断增加。例如,被广泛使用的VGG-16网络需要500兆字节(MB)的存储空间,并且识别一张分辨率为224×224的图片需要15吉(G)次的浮点运算(FLOPs)。最近深度神经网络在嵌入式或者移动设备上的应用在渐渐发展,比如自动驾驶、智能手机和智能摄像头等。这些移动设备的特点是较少的存储空间、有限的计算资源和较短的电池使用时间,这就成了深度神经网络更好地部署在移动设备中的瓶颈。因此,深度神经网络压缩与加速作为一种解决办法变得越来越热门,其目的是设计一种方法在保证网络性能没有明显降低的条件下减少网络的存储空间并加快网络的识别速度。在众多的深度神经网络压缩与加速方法中,基于网络剪枝方法的研究最为热门。剪枝方法通常先在一个计算资源充足的设备上将大网络采用一种剪枝策略训练或者微调出一个稀疏的小网络模型,之后把小模型的参数部署在资源受限的移动设备上就可以运行了。较早的剪枝方法是一种不规则的剪枝,将深度神经网络中的一些权重置为零从而实现减少网络存储空间的目的。但是这种不规则的网络模型不利于网络的加速,除非要设计特别的硬件来实现。后来的剪枝方法则变成一种网络结构层面的剪枝,即剪枝网络的滤波器(filters)、通道(channels)或者滤波器形状(filtershapes)等。这类剪枝方法可以分成两类:(1)先在已经训练好的大模型上应用剪枝方法,然后通过微调步骤来恢复性能。但是这种方法需要先有一个训练好的网络模型,而对于一个新的识别任务往往没有训练好的模型,这就要额外花费不少时间来训练好一个性能可观的大网络;(2)直接在网络训练过程中加入稀疏约束得到一个结构稀疏的模型,然后应用剪枝方法再通过微调步骤以恢复性能。这类剪枝方法由于在训练时加入了稀疏性的约束条件,会使得网络训练变得困难。以下为现有技术缺点:1、基于已经训练好的大模型的剪枝方法通常需要一个细致的微调步骤,而且已有训练好的模型这个条件有时满足不了,比如我们应用在一个新的识别任务上。2、在网络训练过程中加入稀疏约束的剪枝方法不仅由于稀疏约束惩罚项的加入使得网络的训练变得困难,而且在网络训练结束实施剪枝方法后还需要一个精细的微调步骤,这也导致结构精简的小模型得来变得费时。
技术实现思路
(一)要解决的技术问题本专利技术的目的在于提供一种神经网络的压缩装置及方法,以解决上述的至少一项技术问题。(二)技术方案本专利技术的一方面,提供了一种神经网络的压缩装置,包括:因子矢量确定单元,分别确定用于对神经网络中每一层的滤波器和滤波器形状进行衰减的第一因子矢量和第二因子矢量,其中,第一因子矢量包括衰减因子c=1和第一衰减因子α,第二因子矢量包括衰减因子c和第一衰减因子β,其中α和β均大于0且小于1;衰减单元,用于根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减;剪枝单元,用于对衰减后的滤波器和滤波器形状进行剪枝,确定压缩后的神经网络。在本专利技术的一些实施例中,还包括:更新单元,用于通过反向传播算法更新所述滤波器的权重,并将第层第i个更新后的滤波器记作将第层更新后的滤波器形状记作其中,i≥0,L为滤波器的层数。在本专利技术的一些实施例中,所述衰减单元根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减,具体包括:将与第一因子矢量中的第i个衰减因子相乘,确定一次衰减后的滤波器其中,N为每一层的滤波器的个数;重复滤波器的更新和衰减,以实现多次迭代,每次迭代包括一次更新和一次衰减,直至神经网络收敛;将与第二因子矢量进行运算,确定一次衰减后的滤波器形状其中,tile是TensorFlow中的一个函数,⊙表示对应元素间的相乘操作;重复滤波器形状的更新和衰减,以实现多次迭代,每次迭代包括一次更新和一次衰减,直至神经网络收敛。在本专利技术的一些实施例中,剪枝单元对衰减后的滤波器和滤波器形状进行剪枝,具体包括:将该神经网络的衰减后的滤波器在变形成二维矩阵形式的卷积核中以列的形式进行剪枝;将该神经网络的衰减后的滤波器形状在变形成二维矩阵形式的卷积核中以行的形式进行剪枝。本专利技术的另一方面,还提供了一种神经网络的压缩方法,包括:分别确定用于对神经网络中每一层的滤波器和滤波器形状进行衰减的第一因子矢量和第二因子矢量,其中,第一因子矢量包括衰减因子c=1和第一衰减因子α,第二因子矢量包括衰减因子c和第一衰减因子β,其中α和β均大于0且小于1;根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减;对衰减后的滤波器和滤波器形状进行剪枝,确定压缩后的神经网络。在本专利技术的一些实施例中,还包括:通过反向传播算法更新所述滤波器的权重,并将第层第i个更新后的滤波器记作将第层更新后的滤波器形状记作其中,i≥0,L为滤波器的层数。在本专利技术的一些实施例中,根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减,具体包括:将与第一因子矢量中的第i个衰减因子相乘,确定一次衰减后的滤波器其中,N为每一层滤波器的个数;重复滤波器的更新和衰减,以实现多次迭代,每次迭代包括一次更新和一次衰减,直至神经网络收敛;将与第二因子矢量进行运算,确定一次衰减后的滤波器形状其中,tile是TensorFlow中的一个函数,⊙表示对应元素间的相乘操作;重复滤波器形状的更新和衰减,以实现多次迭代,每次迭代包括一次更新和一次衰减,直至神经网络收敛。在本专利技术的一些实施例中,对衰减后的滤波器和滤波器形状进行剪枝,具体包括:将该神经网络的衰减后的滤波器在变形成二维矩阵形式的卷积核中以列的形式进行剪枝;将该神经网络的衰减后的滤波器形状在变形成二维矩阵形式的卷积核中以行的形式进行剪枝。(三)有益效果本专利技术的神经网络的压缩装置及方法,相较于现有技术,至少具有以下优点:1、本专利技术基于渐进抑制学习,对神经网络进行压缩,在网络训练过程中加入削弱权值的第一和第二衰减因子,将权值衰减为零从而可将其剪枝,从而快速得到结构精简的神经网络模型,可以被部署在需要的移动设备上。2、本专利技术的一次迭代包括一次衰减和一次更新,更新权重之后再将所有权重与其对应的缩放因子矢量相乘,能够快速地对神经网络进行精简,且能够大幅提高其压缩率和加速率。3、本专利技术在每一步更新权值之后再对所有权值进行衰减,没有在训练目标函数上加入任何惩罚项,不会增加网络训练难度。而且本专利技术从头训练一个神经网络,不需要预训练好的网络模型,故可以应用到一个新的任务中。附图说明图1为本专利技术实施例的神经网络的压缩装置的结构示意图;图2为本专利技术中在滤波器层次的剪枝方法在神经网络某一层上的示意图;图3为本专利技术实施例的可剪枝神经网络卷积核的位置示意图;图4为本专利技术实施例的神经网络的压缩方法的步骤示意图。具体实施方式现有技术中,基于已经训练好的大模型的剪枝方法通常需要一个细致的微调步骤,而且已有训练好的模型这个条件有时满足不了;在网络训练过程中加入稀疏约束的剪枝方法不仅由于稀疏约束惩罚项的加入使得网络本文档来自技高网
...

【技术保护点】
1.一种神经网络的压缩装置,其中,包括:因子矢量确定单元,分别确定用于对神经网络中每一层的滤波器和滤波器形状进行衰减的第一因子矢量和第二因子矢量,其中,第一因子矢量包括衰减因子c=1和第一衰减因子α,第二因子矢量包括衰减因子c和第一衰减因子β,其中α和β均大于0且小于1;衰减单元,用于根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减;剪枝单元,用于对衰减后的滤波器和滤波器形状进行剪枝,确定压缩后的神经网络。

【技术特征摘要】
1.一种神经网络的压缩装置,其中,包括:因子矢量确定单元,分别确定用于对神经网络中每一层的滤波器和滤波器形状进行衰减的第一因子矢量和第二因子矢量,其中,第一因子矢量包括衰减因子c=1和第一衰减因子α,第二因子矢量包括衰减因子c和第一衰减因子β,其中α和β均大于0且小于1;衰减单元,用于根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减;剪枝单元,用于对衰减后的滤波器和滤波器形状进行剪枝,确定压缩后的神经网络。2.根据权利要求1所述的神经网络的压缩装置,其中,还包括:更新单元,用于通过反向传播算法更新所述滤波器的权重,并将第层第i个更新后的滤波器记作将第层更新后的滤波器形状记作其中,i≥0,L为滤波器的层数。3.根据权利要求2所述的神经网络的压缩装置,其中,所述衰减单元根据所述第一因子矢量与第二因子矢量分别对所述滤波器和滤波器形状进行衰减,具体包括:将与第一因子矢量中的第i个衰减因子相乘,确定一次衰减后的滤波器其中,1≤i≤N,N为每一层的滤波器的个数;重复滤波器的更新和衰减,以实现多次迭代,每次迭代包括一次更新和一次衰减,直至神经网络收敛;将与第二因子矢量进行运算,确定一次衰减后的滤波器形状其中,tile是TensorFlow中的一个函数,⊙表示对应元素间的相乘操作;重复滤波器形状的更新和衰减,以实现多次迭代,每次迭代包括一次更新和一次衰减,直至神经网络收敛。4.根据权利要求1所述的神经网络的压缩装置,其中,剪枝单元对衰减后的滤波器和滤波器形状进行剪枝,具体包括:将该神经网络的衰减后的滤波器在变形成二维矩阵形式的卷积核中以列的形式进行剪枝;将该神经网络的衰减后的滤波器形状在变形成...

【专利技术属性】
技术研发人员:周文罡周争光李厚强
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:安徽,34

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1