CN114239826A - 神经网络剪枝方法、介质及电子设备 - Google Patents
神经网络剪枝方法、介质及电子设备 Download PDFInfo
- Publication number
- CN114239826A CN114239826A CN202111607946.0A CN202111607946A CN114239826A CN 114239826 A CN114239826 A CN 114239826A CN 202111607946 A CN202111607946 A CN 202111607946A CN 114239826 A CN114239826 A CN 114239826A
- Authority
- CN
- China
- Prior art keywords
- pruning
- neural network
- candidate network
- network structure
- model
- 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.)
- Granted
Links
- 238000013138 pruning Methods 0.000 title claims abstract description 152
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 66
- 238000012549 training Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 32
- 238000010606 normalization Methods 0.000 claims description 16
- 230000035772 mutation Effects 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 8
- 238000012821 model calculation Methods 0.000 claims description 5
- 230000006835 compression Effects 0.000 abstract description 14
- 238000007906 compression Methods 0.000 abstract description 14
- 238000003062 neural network model Methods 0.000 description 16
- 238000013527 convolutional neural network Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012804 iterative process Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 108090000623 proteins and genes Proteins 0.000 description 3
- 230000002238 attenuated effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000282414 Homo sapiens Species 0.000 description 1
- 244000141353 Prunus domestica Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000013140 knowledge distillation Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 239000002904 solvent Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/086—Learning methods using evolutionary algorithms, e.g. genetic algorithms or genetic programming
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Physiology (AREA)
- Image Analysis (AREA)
Abstract
本发明提供一种神经网络剪枝方法、介质及电子设备。所述神经网络剪枝方法包括:对目标神经网络进行预训练,获得预训练神经网络;对所述目标神经网络每层的剪枝率进行初始化以获得候选网络结构,所述候选网络结构的数量至少为三个;采用进化算法搜索所述候选网络结构,获得最优候选网络结构,另外,在所述进化算法的搜索过程中,各所述候选网络结构均继承所述预训练神经网络的部分参数;对所述最优候选网络结构进行剪枝,获得剪枝模型。该方法能够快速获得一系列不同压缩程度的剪枝网络并且实现至少两个剪枝指标之间的平衡,减少剪枝所需要的计算资源和时间成本。
Description
技术领域
本发明涉及一种神经网络的压缩方法,特别是涉及一种神经网络剪枝方法、介质及电子设备。
背景技术
近年来,以卷积神经网络为代表的深度学习算法在计算机视觉、自然语言处理、语音识别等领域取得了突破性的进展。虽然常见的神经网络模型在多个任务上都取得了超越人类的表现,但这仅仅是科研层面的尝试,在实际部署过程中,神经网络模型高存储、高功耗的缺点严重制约着其在资源有限的平台以及在需要实时在线处理的场景中应用,如何减小神经网络模型的存储空间和运算量,并且保证神经网络的性能不变或仅仅微弱下降是目前的研究热点之一。现有的模型压缩优化方法包括:低秩分解、网络剪枝、模型量化、知识蒸馏和紧凑网络设计等。
剪枝技术通过去除神经网络的冗余连接来减少模型的复杂度,以此起到压缩神经网络的效果。对于模型的压缩率,通常根据人为的需求或经验确定总的剪枝率,并为每一层卷积层分配相同的剪枝阈值。这种处理方式导致剪枝过程的效率不高,一次完整的剪枝流程只能得到一个预期压缩量的剪枝模型。与此同时,当均匀剪枝的策略涉及两个或以上的性能指标时,难以实现各性能指标之间的平衡。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种神经网络剪枝方法、介质及电子设备,用于解决现有技术中剪枝过程效率不高以及多性能指标之间不平衡等问题。
为实现上述目的及其他相关目的,本发明的第一方面提供一种神经网络剪枝方法,所述神经网络剪枝方法包括:对目标神经网络进行预训练,获得预训练神经网络;对所述目标神经网络每层的剪枝率进行初始化以获得候选网络结构,所述候选网络结构的数量至少为三个;采用进化算法搜索所述候选网络结构,获得最优候选网络结构,其中,所述进化算法的目标函数为关于至少两个性能指标的函数,且所述最优候选网络结构为一个或一个以上的所述候选网络结构,另外,在所述进化算法的搜索过程中,各所述候选网络结构均继承所述预训练神经网络的部分参数;对所述最优候选网络结构进行剪枝,获得剪枝模型。
于所述第一方面的一实施例中,所述性能指标包括:模型计算量、模型参数量、运行内存、前向推理时间和/或模型精度。
于所述第一方面的一实施例中,在采用进化算法搜索所述候选网络结构之前,所述神经网络剪枝方法还包括:对所述候选网络结构进行正则化训练,以获取稀疏化的候选网络结构。
于所述第一方面的一实施例中,根据目标函数并通过进化算法搜索所述候选网络结构,获得最优候选网络结构的实现方法包括:基于所述候选网络结构获取所述进化算法的初始种群,其中,所述初始种群的个体与所述候选网络结构一一对应;根据所述预训练神经网络的参数获取所述候选网络结构的参数;通过前向传播算法处理训练数据集,以调节所述候选网络结构的归一化层的统计参数;根据所述目标函数并通过变异、交叉和选择操作获取所述进化算法的非支配解集;根据所述非支配解集中的个体获取所述最优候选网络结构。
于所述第一方面的一实施例中,所述归一化层的统计参数包括均值和方差。
于所述第一方面的一实施例中,所述初始种群中的每个个体均对应一个列表,所述列表的每个元素为所述候选网络结构中每层所需剪枝的卷积核通道数。
于所述第一方面的一实施例中,对所述最优候选网络结构进行剪枝,获得剪枝模型的实现方法包括:根据所述预训练神经网络的参数获取所述最优候选网络结构的参数;对所述最优候选网络结构进行剪枝,获得所述剪枝模型;基于所述训练数据集对所述剪枝模型进行重训练。
于所述第一方面的一实施例中,所述进化算法包括多目标差分进化算法。
本发明的第二方面提供一种计算机可读存储介质,该计算机程序被处理器执行时实现本发明第一方面任一项所述的神经网络剪枝方法。
本发明的第三方面提供一种电子设备,所述电子设备包括:存储器,其上存储有计算机程序;处理器,与所述存储器通信相连,调用所述计算机程序时执行本发明第一方面任一项所述神经网络剪枝方法。
如上所述,本发明所述的神经网络剪枝方法、介质及电子设备,具有以下的有益效果:
所述神经网络剪枝方法通过进化算法搜索候选网络结构并对搜索到的最优候选网络结构进行剪枝,其中,所述进化算法的目标函数为关于至少两个性能指标的函数,且所述最优候选网络结构为一个或一个以上的所述候选网络结构,因而所述神经网络剪枝方法可以根据所述进化算法的帕累托解集,获得一系列不同压缩程度的剪枝网络。并且,由于目标函数为关于至少两个性能指标的函数,因而能够实现剪枝过程中两个或以上性能指标之间的平衡,从而减少剪枝所需的计算资源和时间成本,提升剪枝效率。
附图说明
图1显示为本发明所述神经网络剪枝方法于一具体实施例中的流程图。
图2显示为本发明所述神经网络剪枝方法于一具体实施例中采用进化算法搜索所述候选网络结构,获得最优候选网络结构的流程图。
图3显示为本发明所述神经网络剪枝方法于一具体实施例中对所述最优候选网络结构进行剪枝,获得剪枝模型的流程图。
图4显示为本发明所述神经网络剪枝方法于一具体实施例中的流程图。
图5显示为本发明所述电子设备于一具体实施例中的结构示意图。
元件标号说明
500 服务器
510 存储器
520 处理器
S11-S14 步骤
S21-S25 步骤
S31-S33 步骤
S41-S59 步骤
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
现有的剪枝技术中,一般采取均匀剪枝的策略,即通过人为的需求或经验确定总的剪枝率并为每一层卷积层分配相同的剪枝阈值,这种处理策略导致了剪枝过程效率不高,一次完整的剪枝过程只能针对性的得到一个预期压缩量的剪枝模型,并且当均匀剪枝的策略涉及两个或以上性能指标的时候,难以实现各性能指标之间的平衡。
针对上述问题,本发明提供了一种神经网络剪枝方法,所述神经网络剪枝方法包括对目标神经网络进行预训练,获得预训练神经网络;对所述目标神经网络进行初始化以获得候选网络结构,所述候选网络结构的数量至少为三个;采用进化算法搜索所述候选网络结构,获得最优候选网络结构,另外,在所述进化算法的搜索过程中,各所述候选网络结构均继承所述预训练神经网络的参数;对所述最优候选网络结构进行剪枝,获得剪枝模型。所述神经网络剪枝方法相比于常规的均匀剪枝策略,提高了整个剪枝过程的效率并且实现了两个或以上剪枝指标之间的平衡。
于本发明的一实施例中,具体地,请参阅图1,所述神经网络剪枝方法包括:
S11,对目标神经网络进行预训练,获得预训练神经网络。其中,所述目标神经网络例如为卷积神经网络,但本发明并不以此为限。
S12,对所述目标神经网络每层的剪枝率进行初始化以获得候选网络结构,所述候选网络结构的数量至少为三个。具体地,可以通过初始化所述目标神经网络每层的剪枝率,得到多个不同的剪枝网络结构,所述剪枝网络结构即为所述候选网络结构,所述候选网络结构的数量至少为三个。可选地,所述初始化方式可以包括均匀初始化和随机初始化。可选地,所述候选网络结构的数量一般取50-100个。
S13,采用进化算法搜索所述候选网络结构,获得最优候选网络结构,其中,所述进化算法的目标函数为关于至少两个性能指标的函数,且所述最优候选网络结构为一个或一个以上的所述候选网络结构,另外,在所述进化算法的搜索过程中,各所述候选网络结构均继承所述预训练神经网络的部分参数。具体地,进化算法也被称为是演化算法(evolutionary algorithms,EAs),是一种成熟的具有高鲁棒性和广泛适用性的全局优化方法,具有自组织、自适应、自学习的特性,能够不受问题性质的限制,有效地处理传统优化算法难以解决的复杂问题,本实施例中通过所述进化算法搜索所述候选网络结构能够获取其中的多个作为所述最优候选网络结构。可选地,本实施例中,所述进化算法可以包括多目标差分进化算法,但本发明并不以此为限。可选地,所述最优候选网络结构包含于帕累托前沿中,一般由几十个解集构成。所述进化算法能够实现两个或以上性能指标之间的平衡,不会出现例如模型计算量小但精度下降严重的问题。
另外,在所述进化算法的搜索过程中,各所述候选网络结构均继承所述预训练神经网络的部分参数,以实现对所述候选网络结构的微调,从而起到提高搜索效率的作用。
可选地,所述性能指标可以包括模型计算量、模型参数量、运行内存、前向推理时间和/或模型精度等,其中,所述模型计算量指的是神经网络模型前向传播的浮点数运行次数;所述前向推理时间指的是:神经网络模型部署到某个具体硬件上以后,输入一张测试图片至模型中到输出结果所需要的时间;运行内存指的是神经网络模型在处理某组图片过程中所占用内存的大小;模型精度指的是在给定的数据集下,神经网络模型所能获得的正确率。
S14,对所述最优候选网络结构进行剪枝,获得剪枝模型。具体地,可以对所述最优候选网络结构进行一次性的剪枝,以获得所述最优候选网络对应的剪枝模型。需要说明的是,本实施例中可以根据需要选取特定数量的最优候选网络结构进行剪枝,也可以对各所述最优候选网络结构均进行剪枝。
根据以上描述可知,本实例所述的神经网络剪枝方法通过对目标神经网络进行预训练能够使得后续获得的候选网络结构继承预训练神经网络的部分参数,以调节所述候选网络结构归一化层的统计参数,提高评估所述候选网络结构精度的效率。通过对所述目标神经网络每层的剪枝率进行初始化以获得候选网络结构,使得不再需要人为设置一个预期的剪枝阈值做约束,能够为每一层卷积层宽度内的所有整数作为可能的剪枝阈值,极大地扩展了搜索空间,有利于在大空间中获得更多的潜在最优解。另外,本实施例通过进化算法搜索候选网络结构并对搜索到的最优候选网络结构进行剪枝,其中,所述进化算法的目标函数为关于至少两个性能指标的函数,且所述最优候选网络结构为一个或一个以上的所述候选网络结构,使得每一次搜索完成后都能得到一系列不同剪枝指标下、压缩量不同的候选解,再根据实际需求选择合适的结构进行剪枝,使得所述神经网络剪枝方法能减少候选网络结构的搜索时间,提高整个剪枝过程的效率。并且,由于目标函数为关于至少两个性能指标的函数,因而可以实现各剪枝指标之间的平衡。
于本发明的一实施例中,在采用进化算法搜索所述候选网络结构之前,所述神经网络剪枝方法还包括:对所述候选网络结构进行正则化训练,以获取稀疏化的候选网络结构。本实施例中通过对所述候选网络结构进行正则化训练,能有效减少所述候选网络结构的存储空间,方便进化算法搜索过程的评估并能有效降低整个剪枝流程的运算量以及提高整个剪枝流程的效率。
请参阅图2,于本发明的一实施例中,采用进化算法搜索所述候选网络结构,获得最优候选网络结构的实现方法包括:
S21,基于所述候选网络结构获取所述进化算法的初始种群,其中,所述初始种群的个体与所述候选网络结构一一对应。
可选地,所述初始种群中的每个个体均对应一个列表,所述列表的每个元素为所述候选网络结构中每层所需剪枝的卷积核通道数。
S22,根据所述预训练神经网络的参数获取所述候选网络结构的参数。例如,所述候选网络结构可以通过继承的方式获取所述预训练神经网络的部分参数作为其参数。
S23,通过前向传播算法处理训练数据集,以调节所述候选网络结构的归一化层的统计参数。具体地,当训练数据集为小数据集时,可以通过所述前向传播算法处理全部的训练数据,以调节归一化层的统计参数,当训练数据集为大数据集时,可以通过所述前向传播算法处理部分的训练数据,以完成归一化层统计参数的微调。因此,无论训练数据集是大数据集和/或小数据集,本实施例都可大幅度提高进化算法搜索的效率。本实施例中,所述统计参数例如为均值和方差。
S24,根据所述目标函数并通过变异、交叉和选择操作获取所述进化算法的非支配解集。
具体地,本实施例中可以通过迭代的方式获取所述进化算法的非支配解集,在迭代过程中,每执行一轮变异、交叉和选择操作就对当前的迭代次数加1并且判断当前迭代次数是否达到设定的最大次数,如果迭代还未完成,继续对当前种群进行交叉、变异等操作,如果迭代结束,则输出当前种群中的非支配解集。可选地,本实施例中的初始迭代次数可以设置为0。
在迭代过程中,可以根据所述目标函数确定所述种群个体的适应度值。可选地,当所述目标函数为最大值问题时,可以通过将待求解的目标函数作为个体的适应度函数,以确定个体的适应度值。当所述目标函数为最小值问题时,所述个体的适应度函数与待求解的目标函数关于x轴对称,通过求解所述个体的适应度函数可以确定个体的适应度值。所述变异操作的一种实现方式为从所述种群中任意选取两个个体,将两者之间的差值缩放,并与待变异个体求和。所述交叉操作的一种实现方式为对变异后的个体进行单点基因交叉。所述选择操作的一种实现方式为:将变异后的个体与原种群混合,接着对混合父代和子代种群中的每个个体进行非支配分层排序,按照存在支配解的个数由层级间的支配关系进行排序,并选取其中前N个个体作为下一代种群,其中N大于等于1。
S25,根据所述非支配解集中的个体获取所述最优候选网络结构。
根据以上描述可知,本实例所述的神经网络剪枝算法在采用进化算法搜索所述候选网络结构的过程中,通过微调归一化层的统计参数大幅度提高了所述进化算法的迭代过程,提高了所述进化算法搜索所述候选网络结构的效率。另外,借助于目标函数,所述进化算法能够自动完成不同压缩程度的候选网络结构搜索,并能够根据需要选择符合场景需求的压缩结构,增加了神经网络模型剪枝的灵活性和鲁棒性,提升了神经网络模型的泛化能力。
请参阅图3,于本发明的一实施例中,对所述最优候选网络结构进行剪枝,获得剪枝模型的实现方法包括:
S31,根据所述预训练神经网络的参数获取所述最优候选网络结构的参数。具体地,所述最优候选网络结构可以采用继承的方式获取所述预训练神经网络的部分参数作为其参数。
S32,对所述最优候选网络结构进行剪枝,获得所述剪枝模型。具体地,可以对所述最优候选网络结构进行一次性的剪枝,获得各最优候选网络对应的剪枝模型。
S33,基于所述训练数据集对所述剪枝模型进行重训练。优选地,在重训练的过程中可以调节学习率的数值,以使学习率随着训练次数的增加而衰减,在整个微调的过程中,学习率应该远小于初次训练的值,以此提高所述剪枝模型的性能。
根据以上描述可知,本实例所述的神经网络剪枝方法包括对所述剪枝模型进行重训练,以此保证所述剪枝模型具备更佳的性能。
于本发明的一实施例中,所述目标函数的其中一个性能指标为精度。此时,所述神经网络剪枝方法通过初始化所述目标神经网络每层的剪枝率,能进一步细化神经网络层级之间对神经网络精度的贡献,并且极大地扩展了搜索空间,有利于在大空间中获得更多的潜在更优解,有效解决了常规均匀剪枝策略中忽略神经网络层间关系的问题,在相同的压缩量下,可以获得更小的精度下降,从而具备更佳的精度。另外,可以通过在重训练的过程中,调节学习率的数值,在微调过程中,学习率应该远小于初次训练的值,以此进一步提高所述剪枝模型的精度。
请参阅图4,于本发明的一实施例中,所述神经网络剪枝方法包括:
S41,对目标神经网络进行预训练,获得预训练神经网络。其中,所述目标神经网络例如为卷积神经网络,但本发明并不以此为限。
S42,对所述目标神经网络每层的剪枝率进行初始化以获得候选网络结构,所述候选网络结构的数量至少为三个。具体地,可以通过初始化所述目标神经网络每层的剪枝率,得到多个不同的剪枝网络结构,所述剪枝网络结构即为所述候选网络结构,所述候选网络结构的数量至少为三个。可选地,所述初始化方式可以包括均匀初始化和随机初始化。可选地,所述候选网络结构的数量一般取50-100个。
S43,对所述候选网络结构进行正则化训练,以获取稀疏化的候选网络结构。
S44,基于所述候选网络结构获取所述进化算法的初始种群,其中,所述初始种群的个体与所述候选网络结构一一对应。
可选地,所述初始种群中的每个个体均对应一个列表,所述列表的每个元素为所述候选网络结构中每层所需剪枝的卷积核通道数。例如,若所述候选网络结构有14层需剪枝的卷积核通道,那么所述候选网络结构对应个体所需剪枝的卷积核通道可以表示为:α=[α1,α2,……,α14],其中αi就是各卷积层的剪枝阈值。
S45,根据所述预训练神经网络的参数获取所述候选网络结构的参数。具体地,所述候选网络结构可以通过继承的方式获取所述预训练神经网络的部分参数作为其参数。
S46,通过前向传播算法处理训练数据集,以调节所述候选网络结构的归一化层的统计参数。具体地,当训练数据集为小数据集时,可以通过所述前向传播算法处理全部的训练数据,以调节归一化层的统计参数,当训练数据集为大数据集时,可以通过所述前向传播算法处理部分的训练数据,以完成归一化层的微调。可选地,所述统计参数可以包括均值和方差。例如,可以将所述候选网络结构的归一化层描述为其中x和y是归一化层的输入和输出数据,尺度参数γ与偏置参数β是所述归一化层的可学习参数,μ和σ2是基于训练数据集统计获得的均值和方差,ε是一个非常小的常数,防止分母出现零的情况,μ和σ2可以通过下式更新,μt=m×μt-1+(1-m)×μb,其中t指的是训练的迭代次数,μb和表示当前批次下的输入数据的均值和方差,m的默认值为0.9。在训练模式下,仅通过少量的训练数据进行正向推理,就可更新μb和以此减少所述候选网络结构和所述预训练模型之间归一化层统计参数不匹配的问题,更新统计参数后就可以实现对所述候选网络结构快速有效的评估。
S47,根据所述目标函数并通过变异、交叉和选择操作获取所述进化算法的非支配解集。具体地,根据性能指标确定所述进化算法的目标函数,基于所述目标函数,采用进化算法搜索所述候选网络结构即可获得最优候选网络结构。实际应用中可以采用迭代的方式获取所述非支配解集,具体来说,每执行一轮变异、交叉和选择操作都需要对当前迭代次数加1并且判断当前迭代次数是否达到设定的最大次数,如果迭代还未完成,继续对当前种群进行交叉、变异等操作,如果迭代结束,则输出当前种群中的非支配解集。可选地,初始迭代次数可以设置为0。可选地,所述进化算法可以包括多目标差分进化算法。
可选地,所述性能指标可以包括模型计算量、模型参数量、运行内存、前向推理时间和/或模型精度等。其中,所述模型计算量指的是神经网络模型前向传播的运行次数。所述前向推理时间指的是:神经网络模型部署到某个具体硬件上,输入一张测试图片到模型中,输出结果所需要的时间。所述运行内存指的是神经网络模型在预测某组图片过程中占用内存的大小。所述模型精度指的是在给定的数据集下,神经网络模型所能获得的正确率。
例如,当选择的性能指标为FLOPs(Floating Point Operations,模型计算量)和模型精度时,所述目标函数可以表示为:maxaF(a)=(f1(a),f2(a)),s.t.a=(a1,a2,…,al),其中f1和f2表示的是FLOPs的压缩量和剪枝后模型的精度,ai是各卷积层的剪枝阈值,其中FLOPs的计算公式可以表示为:FLOPsi=(Ni-1-αi-1)×(Ni-αi)×K2×Hi×Wi, 其中,Ni和Ni+1表示第i层的输入和输出通道数,K2是滤波器的大小,Hi×Wi为该层输出特征图的长和宽,l表示模型的卷积层个数。所述变异操作的一种实现方式为从所述种群中任意选取两个个体,将两者之间的差值缩放,并与待变异个体求和,该过程可以表示为un,g+1=xn1,g+F×(xn2,g-xn3,g),其中xn1,g为待变异的第g代个体,xn2,g和xn3,g分别为随机两个任意的第g代个体,而un,g+1为变异后的第(g+1)代个体,F为缩放因子,其取值可以为0.2。所述交叉操作的一种实现方式为对变异后的个体进行单点基因交叉,该过程可以表示为其中,CR为交叉概率,其取值可以为0.9,nrand为随机整数,以此保证交叉操作中至少有一维基因来自变异操作产生的基因。所述选择操作的一种实现方式为将变异后的个体与原种群混合,接着对混合父代和子代种群中的每个个体进行非支配分层排序,按照存在支配解的个数由层级间的支配关系进行排序,并选取其中前N个个体作为下一代种群,其中N大于等于1。
S48,根据所述非支配解集中的个体获取所述最优候选网络结构。具体地,可以从所述非支配解集中获取满足预设条件的个体作为所述最优候选网络结构。
S49,对所述最优候选网络结构进行剪枝,获得剪枝模型。
可选地,对所述最优候选网络结构进行剪枝,获得剪枝模型的一种实现方法包括:根据所述预训练神经网络的参数获取所述最优候选网络结构的参数,对所述最优候选网络结构进行剪枝,获得所述剪枝模型,基于所述训练数据集对所述剪枝模型进行重训练。
可选地,所述最优候选网络结构可以通过继承的方式获取所述预训练神经网络的部分参数作为其参数。此外,本实施例可以对所述最优候选网络结构进行一次性的剪枝,以获得各最优候选网络对应的剪枝模型。本实施例优选为根据训练数据集对所述剪枝模型进行重训练,在重训练的过程中可以调节学习率的数值,以使学习率随着训练次数而衰减,在整个微调环节中,学习率应该远小于初次训练的值,以此提高所述剪枝模型的性能。
根据以上描述可知,本实例中神经网络剪枝方法包括对目标神经网络进行预训练以获得预训练神经网络、对所述目标神经网络进行初始化以获得候选网络结构、采用进化算法搜索所述候选网络结构以获得最优候选网络结构以及对所述最优候选网络结构进行剪枝等操作,相比于常规的均匀剪枝方法,可以快速获得一系列不同压缩程度的剪枝网络并且实现多个剪枝指标之间的平衡,减少剪枝所需的计算资源和时间成本。
基于以上对所述神经网络剪枝方法的描述,本发明还提供一种计算机可读存储介质,其上存储有计算机程序。该计算机程序被处理器执行时实现图1或图4所示的神经网络剪枝方法。
基于以上对所述神经网络剪枝方法的描述,本发明还提供一种电子设备。请参阅图5,于本发明的一实施例中,所述电子设备500包括:存储器510,其上存储有计算机程序;处理器520,与所述存储器510通信相连,用于执行所述计算机程序并实现图1或图4所示的神经网络剪枝方法。
本发明所述的神经网络剪枝方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本发明的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本发明的保护范围内。
综上所述,本发明的神经网络剪枝方法、介质及电子设备,用于同步优化神经网络模型的多个性能指标,实现以一次搜索的时间代价获得不同压缩程度的子网络,降低了剪枝过程中的搜索成本,并且在多个性能指标之间达到了最佳平衡。因此,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种神经网络剪枝方法,其特征在于,所述神经网络剪枝方法包括:
对目标神经网络进行预训练,获得预训练神经网络;
对所述目标神经网络每层的剪枝率进行初始化以获得候选网络结构,所述候选网络结构的数量至少为三个;
采用进化算法搜索所述候选网络结构,获得最优候选网络结构,其中,所述进化算法的目标函数为关于至少两个性能指标的函数,且所述最优候选网络结构为一个或一个以上的所述候选网络结构,另外,在所述进化算法的搜索过程中,各所述候选网络结构均继承所述预训练神经网络的部分参数;
对所述最优候选网络结构进行剪枝,获得剪枝模型。
2.根据权利要求1所述的神经网络剪枝方法,其特征在于,所述性能指标包括:模型计算量、模型参数量、运行内存、前向推理时间和/或模型精度。
3.根据权利要求1所述的神经网络剪枝方法,其特征在于,在采用进化算法搜索所述候选网络结构之前,所述神经网络剪枝方法还包括:
对所述候选网络结构进行正则化训练,以获取稀疏化的候选网络结构。
4.根据权利要求3所述的神经网络剪枝方法,其特征在于,采用进化算法搜索所述候选网络结构,获得最优候选网络结构的实现方法包括:
基于所述候选网络结构获取所述进化算法的初始种群,其中,所述初始种群的个体与所述候选网络结构一一对应;
根据所述预训练神经网络的参数获取所述候选网络结构的参数;
通过前向传播算法处理训练数据集,以调节所述候选网络结构的归一化层的统计参数;
根据所述目标函数并通过变异、交叉和选择操作获取所述进化算法的非支配解集;
根据所述非支配解集中的个体获取所述最优候选网络结构。
5.根据权利要求4所述的神经网络剪枝方法,其特征在于:所述归一化层的统计参数包括均值和方差。
6.根据权利要求4所述的神经网络剪枝方法,其特征在于:所述初始种群中的每个个体均对应一个列表,所述列表的每个元素为所述候选网络结构中每层所需剪枝的卷积核通道数。
7.根据权利要求4所述的神经网络剪枝方法,其特征在于,对所述最优候选网络结构进行剪枝,获得剪枝模型的实现方法包括:
根据所述预训练神经网络的参数获取所述最优候选网络结构的参数;
对所述最优候选网络结构进行剪枝,获得所述剪枝模型;
基于所述训练数据集对所述剪枝模型进行重训练。
8.根据权利要求1所述的神经网络剪枝方法,其特征在于:所述进化算法包括多目标差分进化算法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该计算机程序被处理器执行时实现权利要求1-8任一项所述的神经网络剪枝方法。
10.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有一计算机程序;
处理器,与所述存储器通信相连,调用所述计算机程序时执行权利要求1-8任一项所述的神经网络剪枝方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111607946.0A CN114239826B (zh) | 2021-12-21 | 神经网络剪枝方法、介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111607946.0A CN114239826B (zh) | 2021-12-21 | 神经网络剪枝方法、介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114239826A true CN114239826A (zh) | 2022-03-25 |
CN114239826B CN114239826B (zh) | 2024-10-22 |
Family
ID=
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115034388A (zh) * | 2022-07-07 | 2022-09-09 | 北京百度网讯科技有限公司 | 排序模型的量化参数的确定方法、装置及电子设备 |
CN118246510A (zh) * | 2024-05-27 | 2024-06-25 | 厦门大学 | 一种神经网络的后训练剪枝方法 |
WO2024174310A1 (zh) * | 2023-02-23 | 2024-08-29 | 山东浪潮科学研究院有限公司 | 一种基于改进的MetaPruning的神经网络通道剪枝方法 |
CN118246510B (zh) * | 2024-05-27 | 2024-10-22 | 厦门大学 | 一种神经网络的后训练剪枝方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018161468A1 (zh) * | 2017-03-10 | 2018-09-13 | 东莞理工学院 | 一种基于拉马克获得性遗传原理的全局优化、搜索和机器学习方法 |
US20190370656A1 (en) * | 2018-06-03 | 2019-12-05 | Kneron (Taiwan) Co., Ltd. | Lossless Model Compression by Batch Normalization Layer Pruning in Deep Neural Networks |
CN113189881A (zh) * | 2021-05-11 | 2021-07-30 | 华东理工大学 | 一种污水处理多目标优化控制方法及系统 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018161468A1 (zh) * | 2017-03-10 | 2018-09-13 | 东莞理工学院 | 一种基于拉马克获得性遗传原理的全局优化、搜索和机器学习方法 |
US20190370656A1 (en) * | 2018-06-03 | 2019-12-05 | Kneron (Taiwan) Co., Ltd. | Lossless Model Compression by Batch Normalization Layer Pruning in Deep Neural Networks |
CN113189881A (zh) * | 2021-05-11 | 2021-07-30 | 华东理工大学 | 一种污水处理多目标优化控制方法及系统 |
Non-Patent Citations (2)
Title |
---|
YOUZAO LIAN等: "Filter pruning via separation of sparsity search and model training", NEUROCOMPUTING, 28 October 2021 (2021-10-28), pages 185 - 194 * |
黄均浩: "基于进化多目标优化的神经网络压缩学习", 中国优秀硕士学位论文全文数据库信息科技辑, no. 10, 15 October 2021 (2021-10-15), pages 140 - 27 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115034388A (zh) * | 2022-07-07 | 2022-09-09 | 北京百度网讯科技有限公司 | 排序模型的量化参数的确定方法、装置及电子设备 |
WO2024174310A1 (zh) * | 2023-02-23 | 2024-08-29 | 山东浪潮科学研究院有限公司 | 一种基于改进的MetaPruning的神经网络通道剪枝方法 |
CN118246510A (zh) * | 2024-05-27 | 2024-06-25 | 厦门大学 | 一种神经网络的后训练剪枝方法 |
CN118246510B (zh) * | 2024-05-27 | 2024-10-22 | 厦门大学 | 一种神经网络的后训练剪枝方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhou et al. | Bayesnas: A bayesian approach for neural architecture search | |
CN113011570B (zh) | 一种采用神经网络压缩系统的人脸表情识别方法 | |
CN111461322B (zh) | 一种深度神经网络模型压缩方法 | |
CN110175628A (zh) | 一种基于自动搜索与知识蒸馏的神经网络剪枝的压缩算法 | |
CN111079899A (zh) | 神经网络模型压缩方法、系统、设备及介质 | |
CN111860783B (zh) | 图节点低维表征学习方法、装置、终端设备及存储介质 | |
WO2022105108A1 (zh) | 一种网络数据分类方法、装置、设备及可读存储介质 | |
Yazdanbakhsh et al. | Releq: An automatic reinforcement learning approach for deep quantization of neural networks | |
CN113837376B (zh) | 基于动态编码卷积核融合的神经网络剪枝方法 | |
CN111832817A (zh) | 基于mcp罚函数的小世界回声状态网络时间序列预测方法 | |
CN110222816B (zh) | 深度学习模型的建立方法、图像处理方法及装置 | |
Hong et al. | Multi-objective magnitude-based pruning for latency-aware deep neural network compression | |
Li et al. | Filter pruning via probabilistic model-based optimization for accelerating deep convolutional neural networks | |
Leinonen | Improvements to short-term weather prediction with recurrent-convolutional networks | |
Bui et al. | Improving network slimming with nonconvex regularization | |
Zhang et al. | Reinforcement learning with actor-critic for knowledge graph reasoning | |
Yuan et al. | Enhanced bayesian compression via deep reinforcement learning | |
CN114239826B (zh) | 神经网络剪枝方法、介质及电子设备 | |
Rong et al. | Soft Taylor pruning for accelerating deep convolutional neural networks | |
CN114239826A (zh) | 神经网络剪枝方法、介质及电子设备 | |
CN115345303A (zh) | 卷积神经网络权重调优方法、装置、存储介质和电子设备 | |
Sarkar et al. | An incremental pruning strategy for fast training of CNN models | |
Li et al. | A revisit to MacKay algorithm and its application to deep network compression | |
CN113592085A (zh) | 一种基于高秩卷积图的核剪枝方法、装置、设备及介质 | |
Zhao et al. | Joint channel and weight pruning for model acceleration on moblie devices |
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 | ||
GR01 | Patent grant |