一种神经网络剪枝方法及装置制造方法及图纸

技术编号:14911793 阅读:227 留言:0更新日期:2017-03-30 01:51
本发明专利技术公开了一种神经网络剪枝方法及装置,以解决现有技术中网络剪枝不能兼顾压缩、加速和精度的技术问题。该方法:根据待剪枝网络层中神经元的激活值,确定神经元的重要度值;根据所述待剪枝网络层中神经元与下一个网络层中神经元的连接权重,确定神经元的多样性值;根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元;将所述待剪枝网络层中的其他神经元剪掉,得到剪枝网络层。本发明专利技术技术方案能够在确保神经网络精度的同时取得了较好的压缩和加速效果。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别涉及一种神经网络剪枝方法及装置。
技术介绍
目前,深度神经网络在计算机视觉领域取得了巨大的成功,如图像分类、目标检测、图像分割等。然而,效果较好的深度神经网络往往有着数量较大的模型参数,不仅计算量大而且在实际部署中模型占据较大一部分空间,这在一些需要实时运算的应用场景无法正常应用。因此,如何对深度神经网络进行压缩与加速则显得尤为重要,尤其是未来一些需要将深度神经网络应用到诸如嵌入式设备、集成硬件设备中的应用场景。目前,对深度神经网络进行压缩和加速的方式主要是通过网络剪枝的方式实现,例如,SongHan等人发表的论文“LearningbothWeightsandConnectionsforEfficientNeuralNetwork”中提出了一种基于权重的网络剪枝技术,以及ZeldaMariet等人发表的论文“DiversityNetworks”中提出了一种基于行列式点过程的神经网络剪枝技术。然而目前的网络剪枝技术的效果不理想,仍然存在压缩、加速和精度不能同时兼顾的技术问题。
技术实现思路
鉴于上述问题,本专利技术提供一种神经网络剪枝方法及装置,以解决现有技术存在压缩、加速和精度不能同时兼顾的技术问题。本专利技术一方面,提供一种神经网络剪枝方法,方法包括:根据待剪枝网络层中神经元的激活值,确定神经元的重要度值;根据所述待剪枝网络层中神经元与下一个网络层中神经元的连接权重,确定神经元的多样性值;根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元;将所述待剪枝网络层中的其他神经元剪掉,得到剪枝网络层。另一方面,本专利技术实施例还提供一种神经网络剪枝装置,该装置包括:重要度值确定单元,用于根据待剪枝网络层中神经元的激活值,确定神经元的重要度值;多样性值确定单元,用于根据所述待剪枝网络层中神经元与下一个网络层中神经元的连接权重,确定神经元的多样性值;神经元选取单元,用于根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元;剪枝单元,用于将所述待剪枝网络层中的其他神经元剪掉,得到剪枝网络层。本专利技术实施例提供的神经网络剪枝方法,首先,针对待剪枝网络层中的每一个神经元,根据所述神经元的激活值确定其重要度值以及根据该神经元与下一个网络层中神经元的连接权重确定其多样性值;再根据待剪枝网络层中神经元的重要度值和多样性值,采用体积最大化神经元选取策略从待剪枝中选取保留的神经元。本专利技术技术方案,神经元的重要性值反映神经元对神经网络输出结果的影响程度,神经元的多样性反映神经元的表达能力,因此,采用体积最大神经元选取策略选取出的神经元对神经网络的输出结果的贡献作用和表达能力较强,剪掉的神经元为对神经网络输出结果贡献较弱且表达能力较差的神经元,因此,剪枝后的神经网络与剪枝前的神经网络相比,不仅得到了很好的压缩和加速效果,而且与剪枝前相比其精度损失较小,因此,本专利技术实施例提供的剪枝方法能够在确保神经网络精度的同时取得了较好的压缩和加速效果。本专利技术的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本专利技术而了解。本专利技术的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。附图说明附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与本专利技术的实施例一起用于解释本专利技术,并不构成对本专利技术的限制。在附图中:图1为本专利技术实施例中神经网络剪枝方法的流程图之一;图2为本专利技术实施例中确定神经元的重要度值的方法流程图;图3为本专利技术实施例中从所述待剪枝网络层中选取保留的神经元的方法流程图之一;图4为本专利技术实施例中从所述待剪枝网络层中选取保留的神经元的方法流程图之二;图5为本专利技术实施例中采用贪心求解方法选取神经元的方法流程图;图6为本专利技术实施例中神经网络剪枝方法的流程图之二;图7为本专利技术实施例中神经网络剪枝方法的流程图之三;图8为本专利技术实施例中神经网络剪枝装置的结构示意图之一;图9为本专利技术实施例中重要度值确定单元的结构示意图;图10为本专利技术实施例中神经元选取单元的结构示意图之一;图11为本专利技术实施例中神经元选取单元的结构示意图之二;图12为本专利技术实施例中神经网络剪枝装置的结构示意图之二;图13为本专利技术实施例中神经网络剪枝装置的结构示意图之三。具体实施方式为了使本
的人员更好地理解本专利技术中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。以上是本专利技术的核心思想,为了使本
的人员更好地理解本专利技术实施例中的技术方案,并使本专利技术实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本专利技术实施例中技术方案作进一步详细的说明。本专利技术技术方案,在应用时可以根据实际应用需求确定神经网络中的哪些网络层需要剪枝(后续称为待剪枝网络层),既可以单独对神经网络中的部分网络层进行剪枝,也可以对神经网络中的所有网络层进行剪枝。在实际应用中,例如,可根据网络层的计算量大小确定是否对该网络层进行剪枝,以及可权衡剪枝后神经网络要求的速度和精度(如精度不低于剪枝前的90%)来确定剪枝的网络层数量以及每一个待剪枝网络层需要剪掉的神经元数量,各待剪枝网络层剪掉的神经元数量可以相同也可以不相同,本领域技术人员可以根据实际应用的需求灵活选定,本申请不做严格限定。图1为本专利技术实施例提供的一种神经网络剪枝方法的流程图,对神经网络中的每一个待剪枝网络层均可采用图1所示的方法流程,该方法包括:步骤101、根据待剪枝网络层中神经元的激活值,确定神经元的重要度值。步骤102、根据所述待剪枝网络层中神经元与下一个网络层中神经元的连接权重,确定神经元的多样性值。步骤103、根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元。步骤104、将所述待剪枝网络层中的其他神经元剪掉,得到剪枝网络层。以下对前述图1所示的各个步骤的具体实现方式进行详细的描述,以便本领域技术人员理解本申请技术方案。具体实现方式仅仅是一个示例,本领域技术人员基于该示例想到的其他替代方式或等同方式均在本申请保护的范围内。本专利技术实施例中,均以待剪枝网络层为神经网络中的第l层为例进行描述。优选地,前述步骤101可通过如图2所示的方法流程实现,方法包括:步骤101a、通过神经网络对输入数据进行一次前向操作,得到所述待剪枝网络层中每个神经元的激活值向量;步骤101b、计算各神经元的激活值向量的方差;步骤101c、根据各神经元的方差得到所述待剪枝网络层的神经元方差重要性向量;步骤101d、根据所述神经元方差重要性向量,分别对各神经元的方差进行归一化处理,得到神经元的重要度值。假设待剪枝网络层为神经网络的第l层,待剪枝网络层包含的神经元总数为nl,神经网络的训练数据为T=本文档来自技高网
...

【技术保护点】
一种神经网络剪枝方法,其特征在于,所述方法包括:根据待剪枝网络层中神经元的激活值,确定神经元的重要度值;根据所述待剪枝网络层中神经元与下一个网络层中神经元的连接权重,确定神经元的多样性值;根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元;将所述待剪枝网络层中的其他神经元剪掉,得到剪枝网络层。

【技术特征摘要】
1.一种神经网络剪枝方法,其特征在于,所述方法包括:根据待剪枝网络层中神经元的激活值,确定神经元的重要度值;根据所述待剪枝网络层中神经元与下一个网络层中神经元的连接权重,确定神经元的多样性值;根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元;将所述待剪枝网络层中的其他神经元剪掉,得到剪枝网络层。2.根据权利要求1所述的方法,其特征在于,所述根据待剪枝网络层中神经元的激活值,确定神经元的重要度值,包括:通过神经网络对输入数据进行一次前向操作,得到该待剪枝网络层中每个神经元的激活值向量;计算各神经元的激活值向量的方差;根据各神经元的方差得到所述待剪枝网络层的神经元方差重要性向量;根据所述神经元方差重要性向量,分别对各神经元的方差进行归一化处理,得到神经元的重要度值。3.根据权利要求2所述的方法,其特征在于,采用以下公式对各神经元的方差进行归一化处理:其中式中,qi为待剪枝网络层中第i个神经元的激活值向量的方差,Q为待剪枝网络层的神经元方差重要性向量。4.根据权利要求1所述的方法,其特征在于,根据所述待剪枝网络层中神经元与下一个网络层中神经元的连接权重,确定神经元的多样性值,包括:针对待剪枝网络层中的每个神经元,根据所述神经元与下一个网络层中神经元的连接权重,构建所述神经元的权重向量,并将所述权重向量的方向向量确定为所述神经元的多样性值。5.根据权利要求1所述的方法,其特征在于,所述根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元,包括:针对待剪枝网络层中的每个神经元,将所述神经元的重要度值与多样性值的乘积确定为所述神经元的特征向量;从所述待剪枝网络层中的神经元中选取多组包含k个神经元的组合,所述k为预置的正整数;计算每个组合包含的神经元的特征向量所组成的平行六面体的体积,选取体积最大的组合作为保留的神经元。6.根据权利要求1所述的方法,其特征在于,所述根据所述待剪枝网络层中的神经元的重要度值和多样性值,采用体积最大化神经元选取策略从所述待剪枝网络层中选取保留的神经元,包括:针对待剪枝网络层中的每个神经元,将所述神经元的重要度值与多样性值的乘积确定为所述神经元的特征向量;采用贪心求解方法,从所述待剪枝网络层中的神经元中选取k个神经元作为保留的神经元。7.根据权利要求6所述的方法,其特征在于,采用贪心求解方法,从所述待剪枝网络层中的神经元中选取k个神经元作为保留的神经元,包括:初始化神经元集合为空集合;根据所述待剪枝网络层中的神经元的特征向量构建特征矩阵;采用多轮以下选取方式选取k个神经元:从本轮选取的特征矩阵中选取模长最大的特征向量,并将所述模长最大的特征向量对应的神经元添加至所述神经元集合中;判断所述神经元集合中的神经元数量是否达到k,若是则结束;若否,则:从本轮选取的特征矩阵中去掉所述模长最大的特征向量在其他特...

【专利技术属性】
技术研发人员:王乃岩
申请(专利权)人:北京图森互联科技有限责任公司
类型:发明
国别省市:北京;11

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

1