一种神经网络剪枝方法、装置、电子设备及存储介质制造方法及图纸

技术编号:27209442 阅读:16 留言:0更新日期:2021-01-31 12:42
本申请涉及计算机技术领域,尤其涉及一种神经网络剪枝方法、装置、电子设备及存储介质,获取目标神经网络;按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器,以提高剪枝后的神经网络性能。经网络性能。经网络性能。

【技术实现步骤摘要】
一种神经网络剪枝方法、装置、电子设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种神经网络剪枝方法、装置、电子设备及存储介质。

技术介绍

[0002]目前神经网络在各种领域中应用广泛,但是通常神经网络存在较多的冗余参数,对于存储空间、计算资源等消耗较大,因此如何有效地压缩和加速神经网络是非常有必要的,可以采用的一种方式是网络剪枝(Pruning)方法,网络剪枝基本思想是剪裁最不重要的部分,简化神经网络的参数,现有技术中的神经网络剪枝方法,主要是通过贡献度大小计算,直接删除贡献度较小的滤波器,但是这样可能会导致滤波器多样性降低,从而降低剪枝后的神经网络性能。

技术实现思路

[0003]本申请实施例提供一种神经网络剪枝方法、装置、电子设备及存储介质,以提高剪枝后的神经网络性能。
[0004]本申请实施例提供的具体技术方案如下:
[0005]一种神经网络剪枝方法,包括:
[0006]获取目标神经网络;
[0007]按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;
[0008]其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;
[0009]根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。
[0010]可选的,按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝,具体包括:
[0011]按照从所述各网络层中的位于中间的网络层开始,并依次到所述位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝。
[0012]可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,进一步包括:
[0013]若所述任意一个网络层包括卷积结构和批归一化结构,则将所述卷积结构和所述批归一化结构进行合并。
[0014]可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别,具体包括:
[0015]确定所述任意一个网络层中的输出通道数目,作为所述任意一个网络层中各滤波器的数目;
[0016]将所述各滤波器的数目和预设超参数的乘积,作为聚类的所述目标数目,其中,所述预设超参数大于0,并小于1;
[0017]将所述任意一个网络层中各滤波器聚类为所述目标数目个类别。
[0018]可选的,根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器,具体包括:
[0019]分别计算所述各滤波器的范数,其中,范数大小与贡献度成正比;
[0020]分别从所述目标数目个类别中选择范数最大的滤波器,作为保留下来滤波器,并删除掉除保留下来的滤波器之外的其它滤波器。
[0021]可选的,进一步包括:在对所述任意一个网络层进行剪枝后,对剪枝后的目标神经网络进行训练,并在训练完成后,再按照预设剪枝顺序,对所述任意一个网络层对应的下一个网络层进行剪枝,直至所述各网络层均剪枝完成。
[0022]可选的,进一步包括:在对所述目标神经网络中各网络层均剪枝完成后,对剪枝后的目标神经网络进行训练,获得训练完成后的目标神经网络。
[0023]一种神经网络剪枝装置,包括:
[0024]获取模块,用于获取目标神经网络;
[0025]剪枝模块,用于按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。
[0026]可选的,按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝时,所述剪枝模块具体用于:
[0027]按照从所述各网络层中的位于中间的网络层开始,并依次到所述位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝。
[0028]可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,进一步包括:
[0029]合并模块,用于若所述任意一个网络层包括卷积结构和批归一化结构,则将所述卷积结构和所述批归一化结构进行合并。
[0030]可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别时,所述剪枝模块具体用于:
[0031]确定所述任意一个网络层中的输出通道数目,作为所述任意一个网络层中各滤波器的数目;
[0032]将所述各滤波器的数目和预设超参数的乘积,作为聚类的所述目标数目,其中,所述预设超参数大于0,并小于1;
[0033]将所述任意一个网络层中各滤波器聚类为所述目标数目个类别。
[0034]可选的,根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器时,所述剪枝模块具体用于:
[0035]分别计算所述各滤波器的范数,其中,范数大小与贡献度成正比;
[0036]分别从所述目标数目个类别中选择范数最大的滤波器,作为保留下来滤波器,并
删除掉除保留下来的滤波器之外的其它滤波器。
[0037]可选的,进一步包括:训练模块,用于在对所述任意一个网络层进行剪枝后,对剪枝后的目标神经网络进行训练,并在训练完成后,使所述剪枝模块再按照预设剪枝顺序,对所述任意一个网络层对应的下一个网络层进行剪枝,直至所述各网络层均剪枝完成。
[0038]可选的,进一步包括:训练模块,用于在对所述目标神经网络中各网络层均剪枝完成后,对剪枝后的目标神经网络进行训练,获得训练完成后的目标神经网络。
[0039]一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一种神经网络剪枝方法的步骤。
[0040]一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种神经网络剪枝方法的步骤。
[0041]本申请实施例中,获取目标神经网络;按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器,这样,按照剪枝顺序,分别对各网络层进行剪枝,最大可能降低剪枝导致的性能损失,并且在对网络层进行剪枝时,不是直接舍弃不重要的滤波器,而是可以利用各滤波器之间的相似度信息进行聚类,聚类后再根据贡献度从各类别中删除贡献度较小的滤波器,可以保证保留下来的滤波器的多样性,进而可以在相同速度下保证剪枝后神经网络的性能,在相当的性能下还可以有更好的运行速度。
附图说明
[0042]图1为本申请实施本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络剪枝方法,其特征在于,包括:获取目标神经网络;按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。2.如权利要求1所述的方法,其特征在于,按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝,具体包括:按照从所述各网络层中的位于中间的网络层开始,并依次到所述位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝。3.如权利要求1所述的方法,其特征在于,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,进一步包括:若所述任意一个网络层包括卷积结构和批归一化结构,则将所述卷积结构和所述批归一化结构进行合并。4.如权利要求1-3任一项所述的方法,其特征在于,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别,具体包括:确定所述任意一个网络层中的输出通道数目,作为所述任意一个网络层中各滤波器的数目;将所述各滤波器的数目和预设超参数的乘积,作为聚类的所述目标数目,其中,所述预设超参数大于0,并小于1;将所述任意一个网络层中各滤波器聚类为所述目标数目个类别。5.如权利要求1所述的方法,其特征在于,根据所述各滤波器的贡献度,分别从所述目标数目个类别中...

【专利技术属性】
技术研发人员:康燕斌张志齐
申请(专利权)人:上海依图网络科技有限公司
类型:发明
国别省市:

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

1