CN112288087A - 一种神经网络剪枝方法、装置、电子设备及存储介质 - Google Patents

一种神经网络剪枝方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN112288087A
CN112288087A CN202011253987.XA CN202011253987A CN112288087A CN 112288087 A CN112288087 A CN 112288087A CN 202011253987 A CN202011253987 A CN 202011253987A CN 112288087 A CN112288087 A CN 112288087A
Authority
CN
China
Prior art keywords
pruning
network
neural network
filters
network layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011253987.XA
Other languages
English (en)
Inventor
康燕斌
张志齐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yitu Network Science and Technology Co Ltd
Original Assignee
Shanghai Yitu Network Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Yitu Network Science and Technology Co Ltd filed Critical Shanghai Yitu Network Science and Technology Co Ltd
Priority to CN202011253987.XA priority Critical patent/CN112288087A/zh
Publication of CN112288087A publication Critical patent/CN112288087A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23213Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Molecular Biology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种神经网络剪枝方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种神经网络剪枝方法、装置、电子设备及存储介质。
背景技术
目前神经网络在各种领域中应用广泛,但是通常神经网络存在较多的冗余参数,对于存储空间、计算资源等消耗较大,因此如何有效地压缩和加速神经网络是非常有必要的,可以采用的一种方式是网络剪枝(Pruning)方法,网络剪枝基本思想是剪裁最不重要的部分,简化神经网络的参数,现有技术中的神经网络剪枝方法,主要是通过贡献度大小计算,直接删除贡献度较小的滤波器,但是这样可能会导致滤波器多样性降低,从而降低剪枝后的神经网络性能。
发明内容
本申请实施例提供一种神经网络剪枝方法、装置、电子设备及存储介质,以提高剪枝后的神经网络性能。
本申请实施例提供的具体技术方案如下:
一种神经网络剪枝方法,包括:
获取目标神经网络;
按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;
其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;
根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。
可选的,按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝,具体包括:
按照从所述各网络层中的位于中间的网络层开始,并依次到所述位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝。
可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,进一步包括:
若所述任意一个网络层包括卷积结构和批归一化结构,则将所述卷积结构和所述批归一化结构进行合并。
可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别,具体包括:
确定所述任意一个网络层中的输出通道数目,作为所述任意一个网络层中各滤波器的数目;
将所述各滤波器的数目和预设超参数的乘积,作为聚类的所述目标数目,其中,所述预设超参数大于0,并小于1;
将所述任意一个网络层中各滤波器聚类为所述目标数目个类别。
可选的,根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器,具体包括:
分别计算所述各滤波器的范数,其中,范数大小与贡献度成正比;
分别从所述目标数目个类别中选择范数最大的滤波器,作为保留下来滤波器,并删除掉除保留下来的滤波器之外的其它滤波器。
可选的,进一步包括:在对所述任意一个网络层进行剪枝后,对剪枝后的目标神经网络进行训练,并在训练完成后,再按照预设剪枝顺序,对所述任意一个网络层对应的下一个网络层进行剪枝,直至所述各网络层均剪枝完成。
可选的,进一步包括:在对所述目标神经网络中各网络层均剪枝完成后,对剪枝后的目标神经网络进行训练,获得训练完成后的目标神经网络。
一种神经网络剪枝装置,包括:
获取模块,用于获取目标神经网络;
剪枝模块,用于按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。
可选的,按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝时,所述剪枝模块具体用于:
按照从所述各网络层中的位于中间的网络层开始,并依次到所述位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝。
可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,进一步包括:
合并模块,用于若所述任意一个网络层包括卷积结构和批归一化结构,则将所述卷积结构和所述批归一化结构进行合并。
可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别时,所述剪枝模块具体用于:
确定所述任意一个网络层中的输出通道数目,作为所述任意一个网络层中各滤波器的数目;
将所述各滤波器的数目和预设超参数的乘积,作为聚类的所述目标数目,其中,所述预设超参数大于0,并小于1;
将所述任意一个网络层中各滤波器聚类为所述目标数目个类别。
可选的,根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器时,所述剪枝模块具体用于:
分别计算所述各滤波器的范数,其中,范数大小与贡献度成正比;
分别从所述目标数目个类别中选择范数最大的滤波器,作为保留下来滤波器,并删除掉除保留下来的滤波器之外的其它滤波器。
可选的,进一步包括:训练模块,用于在对所述任意一个网络层进行剪枝后,对剪枝后的目标神经网络进行训练,并在训练完成后,使所述剪枝模块再按照预设剪枝顺序,对所述任意一个网络层对应的下一个网络层进行剪枝,直至所述各网络层均剪枝完成。
可选的,进一步包括:训练模块,用于在对所述目标神经网络中各网络层均剪枝完成后,对剪枝后的目标神经网络进行训练,获得训练完成后的目标神经网络。
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一种神经网络剪枝方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种神经网络剪枝方法的步骤。
本申请实施例中,获取目标神经网络;按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器,这样,按照剪枝顺序,分别对各网络层进行剪枝,最大可能降低剪枝导致的性能损失,并且在对网络层进行剪枝时,不是直接舍弃不重要的滤波器,而是可以利用各滤波器之间的相似度信息进行聚类,聚类后再根据贡献度从各类别中删除贡献度较小的滤波器,可以保证保留下来的滤波器的多样性,进而可以在相同速度下保证剪枝后神经网络的性能,在相当的性能下还可以有更好的运行速度。
附图说明
图1为本申请实施例中一种神经网络剪枝方法流程图;
图2为本申请实施例中另一种神经网络剪枝方法流程图;
图3为本申请实施例中神经网络剪枝装置结构示意图;
图4为本申请实施例中电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,神经网络例如在图像处理、计算机视觉、语音识别等各种领域中得到了广泛应用,神经网络模型也是人工智能的关键技术,利用神经网络模型可以极大提升性能,但是通常神经网络存在较多的冗余参数,对于存储空间、计算资源等消耗较大,也限制了神经网络在移动设备等小型设备上的部署和应用,因此如何有效地压缩和加速神经网络是非常有必要的,可以采用的一种方式是网络剪枝(Pruning)方法,网络剪枝是神经网络简化和加速的一种方法,网络剪枝基本思想是剪裁最不重要的部分,简化神经网络的参数,现有技术中的神经网络剪枝方法,主要是通过贡献度大小计算,直接删除贡献度较小的滤波器,但是这样可能会导致滤波器多样性降低,例如可能会出现将相似度较高的一类滤波器都删除了的情况,这种方式是以性能为代价来加速神经网络,从而降低了剪枝后的神经网络性能。
因此,为解决上述问题,本申请实施例中提供了一种神经网络剪枝方法,获取目标神经网络,按照预设剪枝顺序,分别对目标神经网络中各网络层进行剪枝,在对各网络层中任意一个网络层进行剪枝时,将任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别,进而根据各滤波器的贡献度,分别从目标数目个类别中删除掉贡献度不符合条件的滤波器,这样,在对各网络层进行剪枝时,可以利用各滤波器之间的相似度信息进行聚类,聚类后再根据贡献度从各类别中删除贡献度较小的滤波器,可以使得最终保留下来的滤波器在各类别中均有分布,保证了滤波器的多样性,可以在相同速度下保证剪枝后神经网络的性能,并且在相当的性能下可以有更好的神经网络运行速度。
另外需要说明的是,本申请实施例中的神经网络剪枝方法,可以由服务器执行,服务器获取目标神经网络后,基于本申请实施例中的神经网络剪枝方法进行剪枝,并且还可以不断训练神经网络,当然,本申请实施例中神经网络剪枝方法也可以应用于性能较高的终端,本申请实施例中并不进行限制。
基于上述实施例,参阅图1所示,为本申请实施例中一种神经网络剪枝方法流程图,该方法包括:
步骤100:获取目标神经网络。
本申请实施例中,主要针对以矩阵乘法为主要计算量的神经网络,神经网络中各网络层可以由矩阵特征表征,例如目标神经网络为卷积神经网络,具体本申请实施例中并不进行限制。
步骤110:按照预设剪枝顺序,分别对目标神经网络中各网络层进行剪枝。
本申请实施例中,目标神经网络中至少包括多个网络层,在剪枝时可以是对目标神经网络中每一层网络层进行剪枝,也可以是对其中部分网络层进行剪枝,例如只需要对包含参数权重的网络层进行剪枝,对于不包含或包含参数权重很少的网络层,例如池化层等,进行剪枝的效果可能影响并不大,因此可以不进行剪枝,这样也可以提高剪枝效率。
并且本申请实施例中,在进行剪枝时还设置了剪枝顺序,具体执行步骤110时,包括:
按照从各网络层中的位于中间的网络层开始,并依次到位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对目标神经网络中各网络层进行剪枝。
即本申请实施例中在进行剪枝时,是按照从中间到两边的顺序进行的,例如目标神经网络共有N层网络层,靠近输入的为第一层,靠近输出的为第N层,则可以按照第N/2、N/2±1、N/2±2…,1/N的剪枝顺序,分别对各网络层进行剪枝,其中,若N为奇数,则N/2可以上取整,作为第一个开始剪枝的网络层,并且N/2±1、N/2±2…的剪枝顺序,并不进行限制,可以依次为N/2到N/2+1、N/2-1等,也可以依次为N/2到N/2-1、N/2+1等,例如,共有五层网络层,则先从第三层网络层开始剪枝,再依次到第二层、第四层、第一层和第五层,即可以完成这五层网络层的剪枝,其中,第二层和第四层,以及第一层和第五层的剪枝前后顺序,可以是随机或设置好,本申请实施例中并不进行限制。
这样,本申请实例中在对目标神经网络进行剪枝时,按照从中间到两边的顺序依次进行剪枝,可以进一步提高剪枝后的目标神经网络性能,这是因为,目标神经网络中,各层网络层都是相互关联的,上一层网络层的输出即为下一层网络层的输入,并且越到两边对于权重参数更为敏感,对于神经网络性能影响越大,反之越位于中间层的网络层对于神经网络性能影响越小,因此本申请实施例中设置从中间到两边网络层的剪枝顺序,可以进一步降低剪枝对于神经网络的性能损伤。
步骤120:在对各网络层中任意一个网络层进行剪枝时,将任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别,以及根据各滤波器的贡献度,分别从目标数目个类别中删除掉贡献度不符合条件的滤波器。
本申请实施例中对于任意一个网络层的剪枝处理过程是相同的,以其中任意一个网络层为例,具体执行步骤120时,包括:
S1、在对各网络层中任意一个网络层进行剪枝时,将任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别。
实际中,每个网络层会有多个输入通道和多个输出通道,每个输出通道可以理解为对应一个滤波器,本申请实施例中考虑不同滤波器之间的相似度信息,以保证剪枝后保留下来的滤波器不要太相似,以保证滤波器的多样性。
具体地,进行聚类时可以包括:
S1.1、确定任意一个网络层中的输出通道数目,作为任意一个网络层中各滤波器的数目。
S1.2、将各滤波器的数目和预设超参数的乘积,作为聚类的目标数目,其中,预设超参数大于0,并小于1。
其中,预设超参数,例如为0.5,可以根据实际情况和经验进行设置,本申请实施例中并不进行限制。
例如,该任意一个网络层中滤波器的数目为C_out,超参数为ρ,则目标数目为ρ*C_out。
S1.3、将任意一个网络层中各滤波器聚类为目标数目个类别。
聚类表示预先不知道数据会分为几类,通过聚类分析将数据聚合成几个类别或簇,聚类不需要对数据进行训练和学习,属于无监督学习,例如,可以采用k均值(k-mean)聚类方法进行聚类,k-mean聚类是一种迭代求解的聚类分析算法,其基本原理是采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大,聚类的各个簇是由距离靠近的对象组成的,具体地:随机选取k个对象作为初始的聚类中心,然后分别计算各对象与各个聚类中心之间的距离,把各对象分配给距离最近的聚类中心,聚类中心以及分配给它们的对象就代表一个类别,并且每分配一个对象,类别中的聚类中心会根据类别中现有的对象被重新计算,不断重复这个过程直到满足某个终止条件,例如终止条件可以是没有(或只有最小数目)对象被重新分配给不同的类别,没有(或只有最小数目)聚类中心再发生变化,误差平方和局部最小。
其中,本申请实施例中确定出的目标数目,即为k-mean聚类方法中的k取值,这样,通过聚类,可以将各滤波器聚类为k个类别。
进一步地,为了简化计算,本申请实施例中还可以对各网络层的矩阵特征表示进行转换,具体本申请实施例中提供了一种可能的实施方式,将任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,还包括:若任意一个网络层包括卷积结构和批归一化结构,则将卷积结构和批归一化结构进行合并。
例如,该任意一个网络层为一层卷积结构和一层批归一化结构,该任意一个网络层的输入设为X,输出设为Y,则该任意一个网络层的输出可以表示:
Figure BDA0002772518310000091
其中,Wconv和bconv为卷积结构的权重参数,gamma、beta、mean和variance为批归一化结构的权重参数,并且gamma、beta为设置的尺度变换参数,mean和variance分别表示均值和方差。
可知,该任意一个网络层的输出表示中有各种运算,为了简化计算,可以对其进行转换,可以记:
Figure BDA0002772518310000092
则该任意一个网络层的输出表示可以转换为:Y=W′*X+b′。
这样,可以认为合并后该任意一个网络层可以转换为一个乘法和一个加法的运算,更加简单,进而合并和转换后,进行滤波器聚类时,可以仅考虑W′,假设输入通道数目为C_in,输出通道数目为C_out,卷积核的大小是3*3,因此该网络层的大小就是[C_in,C_out,3,3],可以将其视为C_out个[C_in,3,3]大小的滤波器,进而对这C_out个滤波器进行k-mean聚类,获得k个类别。
S2、根据各滤波器的贡献度,分别从目标数目个类别中删除掉贡献度不符合条件的滤波器。
具体地:分别计算各滤波器的范数,分别从目标数目个类别中选择范数最大的滤波器,作为保留下来滤波器,并删除掉除保留下来的滤波器之外的其它滤波器,其中,范数大小与贡献度成正比。
其中,范数可以采用L2范数,表示矩阵的元素平方和,范数越大说明该滤波器的贡献度越大,即对目标神经网络的结果影响较大,在进行剪枝时,可以仅保留每个类别中范数最大的滤波器,其余的滤波器删除,在删除滤波器时,也删除该滤波器与上层网络和下层网络之间的联系,删除该滤波器对应的输出通道。
例如,通过聚类,获得五个类别,每个类别中包括三个滤波器,则分别计算每个类别中的三个滤波器的范数,保留范数最大的滤波器,删除类别中其余的两个滤波器,这样最终该网络层保留了五个滤波器,减少了冗余的参数,同时又保证范数较大的滤波器保留下来,并且也保证了保留下来的滤波器的多样性。
进一步地,为了保证剪枝后的目标神经网络的性能,剪枝后还可以与原目标神经网络的性能进行比对,若性能变差了,可以通过训练以改善剪枝后的目标神经网络的性能,具体本申请实施例中提供了几种可能的实施方式:
第一种实施方式:在对任意一个网络层进行剪枝后,对剪枝后的目标神经网络进行训练,并在训练完成后,再按照预设剪枝顺序,对任意一个网络层对应的下一个网络层进行剪枝,直至各网络层均剪枝完成。
即第一种实施方式,可以是在每一层剪枝后就进行训练和调整,这样调整更加精细,也可以实现针对剪枝后的一个网络层进行更精确的调整,提升最终目标神经网络的性能。
第二种实施方式:在对目标神经网络中各网络层均剪枝完成后,对剪枝后的目标神经网络进行训练,获得训练完成后的目标神经网络。
也就是说,该第二种实施方式是还可以在对所有网络层均剪枝完成后,统一进行训练调整,这样,虽然调整不够精细,但是效率较高,也降低计算量。
需要说明的是,本申请实施例中的神经网络剪枝方法,可以适用于任何计算资源有限,需要进行模型剪枝并加快速度的场景,例如,在手机、智能摄像头、电脑、门禁、无人车等设备上运行神经网络模型的情况,通过本申请实施例中的神经网络剪枝方法,可以在保证剪枝后神经网络性能情况下,加快神经网络模型速度,可以降低对所应用设备的性能要求,降低设备的成本。
本申请实施例中,获取目标神经网络,按照预设剪枝顺序,分别对目标神经网络中各网络层进行剪枝,其中,在对各网络层中任意一个网络层进行剪枝时,将任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别,并且根据各滤波器的贡献度,分别从目标数目个类别中删除掉贡献度不符合条件的滤波器,这样,按照一定剪枝顺序进行剪枝,最大可能降低剪枝的性能损失,并且在对网络层进行剪枝时,不是直接删除不重要的滤波器,而是先进行聚类再从各个聚类的类别中删除不重要的滤波器,可以使得保留下来的滤波器不会都是相似的,保证了滤波器的多样性,可以在相同速度下保证剪枝后目标神经网络的性能,并且在相当的性能下可以获得更好的目标神经网络运行速度。
基于上述实施例,以采用每一层剪枝后就进行训练和调整的方式为例,参阅图2所示,为本申请实施例中另一种神经网络剪枝方法流程图,该方法包括:
步骤200:获取目标神经网络。
步骤201:按照预设剪枝顺序,分别对目标神经网络中各网络层进行剪枝。
步骤202:在对任意一个网络层进行剪枝时,将任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别。
步骤203:针对每个类别,保留范数最大的滤波器,并删除掉除保留下来的滤波器之外的其它滤波器。
步骤204:对剪枝后的目标神经网络进行训练。
步骤205:判断是否各网络层均剪枝完成,若是,则执行步骤207,否则,则执行步骤206。
步骤206:对该任意一个网络层对应的下一个网络层进行剪枝,并转向执行步骤202。
步骤207:结束。
这样,本申请实施例中在剪枝时,先进行相似度聚类,从每个类别中保留范数最大的滤波器,达到了剪枝效果,将对结果影响较大的滤波器保留下来,并且保留了滤波器的多样性,从而提升了剪枝后的目标神经网络的性能,还可以每次剪枝后进行训练调整,进一步提升性能。
基于同一发明构思,本申请实施例中还提供了一种神经网络剪枝装置,该图像聚类装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图3所示,本申请实施例中神经网络剪枝装置,具体包括:
获取模块30,用于获取目标神经网络;
剪枝模块31,用于按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。
可选的,按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝时,所述剪枝模块31具体用于:
按照从所述各网络层中的位于中间的网络层开始,并依次到所述位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝。
可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,进一步包括:
合并模块32,用于若所述任意一个网络层包括卷积结构和批归一化结构,则将所述卷积结构和所述批归一化结构进行合并。
可选的,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别时,所述剪枝模块31具体用于:
确定所述任意一个网络层中的输出通道数目,作为所述任意一个网络层中各滤波器的数目;
将所述各滤波器的数目和预设超参数的乘积,作为聚类的所述目标数目,其中,所述预设超参数大于0,并小于1;
将所述任意一个网络层中各滤波器聚类为所述目标数目个类别。
可选的,根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器时,所述剪枝模块31具体用于:
分别计算所述各滤波器的范数,其中,范数大小与贡献度成正比;
分别从所述目标数目个类别中选择范数最大的滤波器,作为保留下来滤波器,并删除掉除保留下来的滤波器之外的其它滤波器。
可选的,进一步包括:训练模块33,用于在对所述任意一个网络层进行剪枝后,对剪枝后的目标神经网络进行训练,并在训练完成后,使所述剪枝模块31再按照预设剪枝顺序,对所述任意一个网络层对应的下一个网络层进行剪枝,直至所述各网络层均剪枝完成。
可选的,训练模块33,还用于在对所述目标神经网络中各网络层均剪枝完成后,对剪枝后的目标神经网络进行训练,获得训练完成后的目标神经网络。
基于上述实施例,参阅图4所示为本申请实施例中电子设备的结构示意图。
本申请实施例提供了一种电子设备,该电子设备可以包括处理器410(CenterProcessing Unit,CPU)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(Liquid CrystalDisplay,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器420可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器410提供存储器420中存储的程序指令和数据。在本申请实施例中,存储器420可以用于存储本申请实施例中任一种神经网络剪枝方法的程序。
处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行本申请实施例中任一种神经网络剪枝方法。
基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的神经网络剪枝方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种神经网络剪枝方法,其特征在于,包括:
获取目标神经网络;
按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;
其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;
根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。
2.如权利要求1所述的方法,其特征在于,按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝,具体包括:
按照从所述各网络层中的位于中间的网络层开始,并依次到所述位于中间的网络层的邻接网络层,直至到第一层网络层和最后一层网络层的剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝。
3.如权利要求1所述的方法,其特征在于,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别之前,进一步包括:
若所述任意一个网络层包括卷积结构和批归一化结构,则将所述卷积结构和所述批归一化结构进行合并。
4.如权利要求1-3任一项所述的方法,其特征在于,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别,具体包括:
确定所述任意一个网络层中的输出通道数目,作为所述任意一个网络层中各滤波器的数目;
将所述各滤波器的数目和预设超参数的乘积,作为聚类的所述目标数目,其中,所述预设超参数大于0,并小于1;
将所述任意一个网络层中各滤波器聚类为所述目标数目个类别。
5.如权利要求1所述的方法,其特征在于,根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器,具体包括:
分别计算所述各滤波器的范数,其中,范数大小与贡献度成正比;
分别从所述目标数目个类别中选择范数最大的滤波器,作为保留下来滤波器,并删除掉除保留下来的滤波器之外的其它滤波器。
6.如权利要求1所述的方法,其特征在于,进一步包括:
在对所述任意一个网络层进行剪枝后,对剪枝后的目标神经网络进行训练,并在训练完成后,再按照预设剪枝顺序,对所述任意一个网络层对应的下一个网络层进行剪枝,直至所述各网络层均剪枝完成。
7.如权利要求1所述的方法,其特征在于,进一步包括:
在对所述目标神经网络中各网络层均剪枝完成后,对剪枝后的目标神经网络进行训练,获得训练完成后的目标神经网络。
8.一种神经网络剪枝装置,其特征在于,包括:
获取模块,用于获取目标神经网络;
剪枝模块,用于按照预设剪枝顺序,分别对所述目标神经网络中各网络层进行剪枝;其中,在对所述各网络层中任意一个网络层进行剪枝时,将所述任意一个网络层中各滤波器进行聚类,聚类为目标数目个类别;根据所述各滤波器的贡献度,分别从所述目标数目个类别中删除掉贡献度不符合条件的滤波器。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。
CN202011253987.XA 2020-11-11 2020-11-11 一种神经网络剪枝方法、装置、电子设备及存储介质 Pending CN112288087A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011253987.XA CN112288087A (zh) 2020-11-11 2020-11-11 一种神经网络剪枝方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011253987.XA CN112288087A (zh) 2020-11-11 2020-11-11 一种神经网络剪枝方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN112288087A true CN112288087A (zh) 2021-01-29

Family

ID=74399116

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011253987.XA Pending CN112288087A (zh) 2020-11-11 2020-11-11 一种神经网络剪枝方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN112288087A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112070213A (zh) * 2020-08-28 2020-12-11 Oppo广东移动通信有限公司 神经网络模型的优化方法、装置、设备及存储介质
CN113033779A (zh) * 2021-03-18 2021-06-25 联想(北京)有限公司 一种基于设备参数的模型处理方法及电子设备
CN113283473A (zh) * 2021-04-20 2021-08-20 中国海洋大学 一种基于cnn特征映射剪枝的快速水下目标识别方法
CN114154589A (zh) * 2021-12-13 2022-03-08 成都索贝数码科技股份有限公司 一种基于相似性的模块减枝方法
CN116451771A (zh) * 2023-06-14 2023-07-18 中诚华隆计算机技术有限公司 图像分类卷积神经网络压缩方法及芯粒器件数据分配方法
CN117649568A (zh) * 2024-01-30 2024-03-05 之江实验室 一种用于图像分类卷积神经网络的网络压缩方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112070213A (zh) * 2020-08-28 2020-12-11 Oppo广东移动通信有限公司 神经网络模型的优化方法、装置、设备及存储介质
CN113033779A (zh) * 2021-03-18 2021-06-25 联想(北京)有限公司 一种基于设备参数的模型处理方法及电子设备
CN113283473A (zh) * 2021-04-20 2021-08-20 中国海洋大学 一种基于cnn特征映射剪枝的快速水下目标识别方法
CN113283473B (zh) * 2021-04-20 2023-10-13 中国海洋大学 一种基于cnn特征映射剪枝的快速水下目标识别方法
CN114154589A (zh) * 2021-12-13 2022-03-08 成都索贝数码科技股份有限公司 一种基于相似性的模块减枝方法
CN114154589B (zh) * 2021-12-13 2023-09-29 成都索贝数码科技股份有限公司 一种基于相似性的模块减枝方法
CN116451771A (zh) * 2023-06-14 2023-07-18 中诚华隆计算机技术有限公司 图像分类卷积神经网络压缩方法及芯粒器件数据分配方法
CN116451771B (zh) * 2023-06-14 2023-09-15 中诚华隆计算机技术有限公司 图像分类卷积神经网络压缩方法及芯粒器件数据分配方法
CN117649568A (zh) * 2024-01-30 2024-03-05 之江实验室 一种用于图像分类卷积神经网络的网络压缩方法及装置
CN117649568B (zh) * 2024-01-30 2024-05-03 之江实验室 一种用于图像分类卷积神经网络的网络压缩方法及装置

Similar Documents

Publication Publication Date Title
CN112288087A (zh) 一种神经网络剪枝方法、装置、电子设备及存储介质
US20210042580A1 (en) Model training method and apparatus for image recognition, network device, and storage medium
WO2022042123A1 (zh) 图像识别模型生成方法、装置、计算机设备和存储介质
CN112200300B (zh) 卷积神经网络运算方法及装置
CN110175628A (zh) 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法
CN111950723A (zh) 神经网络模型训练方法、图像处理方法、装置及终端设备
CN112163601B (zh) 图像分类方法、系统、计算机设备及存储介质
CN111008640A (zh) 图像识别模型训练及图像识别方法、装置、终端及介质
CN111985597B (zh) 模型压缩方法及装置
CN111784699B (zh) 一种对三维点云数据进行目标分割方法、装置及终端设备
EP4053739A1 (en) Neural network model for image segmentation and image segmentation method therefor
CN110874626B (zh) 一种量化方法及装置
CN112488297B (zh) 一种神经网络剪枝方法、模型生成方法及装置
CN112861659A (zh) 一种图像模型训练方法、装置及电子设备、存储介质
DE102021107510A1 (de) Training eines neuronalen netzwerks unter speicherbeschränkung
CN112836820A (zh) 用于图像分类任务的深度卷积网络训方法、装置及系统
CN114429208A (zh) 基于残差结构剪枝的模型压缩方法、装置、设备及介质
CN112668639A (zh) 一种模型训练方法、装置、服务器及存储介质
CN117575044A (zh) 数据遗忘学习方法、装置、数据处理系统和存储介质
CN109359542A (zh) 基于神经网络的车辆损伤级别的确定方法及终端设备
CN111507396A (zh) 缓解神经网络对未知类样本产生错误分类的方法及装置
CN115759192A (zh) 一种神经网络加速方法、装置、设备、芯片及存储介质
Hoel et al. The simulation, fitting, and testing of a stochastic cellular proliferation model
US20240135698A1 (en) Image classification method, model training method, device, storage medium, and computer program
WO2023104200A1 (en) Systems, apparatuses, methods, and non-transitory computer-readable storage devices for artificial-intelligence model training using hybrid shuffling of training data

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210129