CN111079899A - 神经网络模型压缩方法、系统、设备及介质 - Google Patents

神经网络模型压缩方法、系统、设备及介质 Download PDF

Info

Publication number
CN111079899A
CN111079899A CN201911237119.XA CN201911237119A CN111079899A CN 111079899 A CN111079899 A CN 111079899A CN 201911237119 A CN201911237119 A CN 201911237119A CN 111079899 A CN111079899 A CN 111079899A
Authority
CN
China
Prior art keywords
pruning
neural network
current
network model
filter
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
CN201911237119.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.)
Smart City Research Institute Of China Electronics Technology Group Corp
CETC Information Science Research Institute
Original Assignee
Smart City Research Institute Of China Electronics Technology Group Corp
CETC Information Science Research Institute
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 Smart City Research Institute Of China Electronics Technology Group Corp, CETC Information Science Research Institute filed Critical Smart City Research Institute Of China Electronics Technology Group Corp
Priority to CN201911237119.XA priority Critical patent/CN111079899A/zh
Publication of CN111079899A publication Critical patent/CN111079899A/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Feedback Control In General (AREA)

Abstract

本发明提供一种神经网络模型的压缩方法、系统、电子设备及可读介质,包括预先设定各网络层的剪枝策略,剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;在当前压缩周期,根据剪枝策略,从各网络层中选出待剪枝的剪枝滤波器,并将各剪枝滤波器的值设置为零;通过微调,将剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;根据当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整。允许被剪枝的滤波器进行更新,不减少网络的特征图的数量;不再需要额外地模型微调的阶段,减少网络训练的时间;根据当前模型的参数统计分布,选择最适合当前模型参数的剪枝策略,提高模型训练的效果。

Description

神经网络模型压缩方法、系统、设备及介质
技术领域
本发明属于神经网络压缩技术领域,具体涉及一种模型压缩方法,尤其是一种基于元学习和软剪枝的模型压缩方法。
背景技术
主流的压缩与加速神经网络的方法可以分成5种:1)参数剪枝(parameterpruning);2)参数共享(parameter sharing);3)低秩分解(low-rank decomposition);4)紧性卷积核的设计(designing compact convolutional filters);5)知识蒸馏(knowledge distillation)。参数剪枝主要通过设计判断参数重要与否的准则,移除冗余的参数。参数共享主要探索模型参数的冗余性,利用Hash或量化等技术对权值进行压缩。低秩分解利用矩阵或张量分解技术估计并分解深度模型中的原始卷积核。紧性卷积核的设计主要通过设计特殊的结构化卷积核或紧性卷积计算单元,减少模型的存储与计算复杂度。知识蒸馏主要利用大型网络的知识,并将其知识迁移到紧性蒸馏的模型中,具体如下表1所示:
Figure BDA0002305180160000011
Figure BDA0002305180160000021
表1
如上表1所示,一般来说,除了紧性卷积核的设计只能用于卷积核外,剩余的4种均能应用于卷积层和全连接层。低秩分解与紧性卷积核的设计能够在CPU和GPU下简单实现端对端(end-to-end)训练,然而参数共享、参数剪枝需要多步或逐层完成压缩与加速任务。关于训练过程中是否需要重新开始训练还是依赖于预训练模型的问题上,参数共享、低秩分解都较为灵活有效,既能适应重新训练也能适应于预训练模型。然而紧性卷积核的设计和知识蒸馏只能支持重新训练,另外参数剪枝只能依赖于预训练模型。从上述方法能否相应组合方面,紧性卷积核的设计方法和知识蒸馏还不能结合其他方法,参数剪枝与参数共享或低秩分解方法结合甚密,通过2种方法的互相融合,能够在一定程度进一步压缩与加速深度网络。
通过剪枝的粒度,可分为权重剪枝和滤波器剪枝。和权重剪枝相比,滤波器剪枝不光可以减少存储空间,还可以降低内存占用,减少推理时间,因此受到了更多的关注。
常见的滤波器剪枝是硬剪枝(Hard Filter Pruning),步骤是:1.按照预先定义好的指标对滤波器进行排序,2.直接剪掉不符合指标的滤波器;3.做网络微调训练,更新未被剪掉的滤波器。优点在于,剪枝后的神经网络能够有更快地进行网络推断。但是,硬剪枝有一系列的问题,包括1.减少了神经网络的解释力,2.依赖神经网络预训练的程度较高,3.性能影响较大。
当前基于滤波器剪枝的工作,需要根据经验事先选择压缩策略,例如基于权重大小的策略,基于滤波器之间相似度的策略。
一旦压缩策略被选定,在整个压缩调试过程中,被选中的策略会一直保持恒定,无法根据情况的变化,例如,滤波器参数概率分布的变化,深度学习模型架构的变化,而进行调整。根据我们实验中的分析结果,我们发现滤波器参数会随着压缩调试的过程不断变化,相应的导致整个模型参数概率分布的变化。在这种情况下,根据经验手动选择一种压缩策略,并在整个过程中保持不变的做法,是值得商榷的。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一,提供一种神经网络模型压缩方法、系统、设备及介质。
本发明的第一个方面提供一种神经网络模型的压缩方法,包括:
S110、预先设定神经网络模型中各网络层的剪枝策略,所述剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;
S120、在当前压缩周期,根据所述剪枝策略,从各所述网络层中选出待剪枝的剪枝滤波器,并将各所述剪枝滤波器的值设置为零;
S130、通过微调,将所述剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;
S140、根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整:
若是,则调整所述剪枝策略,并继续执行步骤S120,直至最终的神经网络模型符合预设要求;
若否,则继续执行步骤S120,直至最终的神经网络模型符合预设要求。
可选地,所述根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整,包括:
向所述当前神经网络模型输入预先定义的特征图;
获取所述当前神经网络模型输出的当前元属性值;
判断所述当前元属性值与预设的标准元属性值之间的差异是否小于预设的第一阈值,若是,则判定下一压缩周期的剪枝策略不需要调整;若否,则判定下一压缩周期的剪枝策略需要调整。
可选地,所述根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整,包括:
分别获取所述当前神经网络模型输出的当前元属性值以及前一压缩周期的前一神经网络模型输出的前一元属性值;
判断所述当前元属性值与所述前一元属性值之间的差异是否小于预设的第二阈值,若是,则判定下一压缩周期的剪枝策略不需要调整;若否,则判定下一压缩周期的剪枝策略需要调整。
可选地,所述元属性包括top-1正确率和压缩率,所述调整所述剪枝策略,包括:
若当前周期模型的压缩率小于元属性中的压缩率,则增大压缩率,增大剪枝阈值;
若当前周期的模型top-1正确率小于元属性的top-1正确率,则减小压缩率,所述滤波器权重值调整为计算所述滤波器的L1范数,减小剪枝阈值,直到所述top-1正确率上升后,所述滤波器权重值调整回计算所述滤波器的L2范数。
可选地,在步骤S110中,各网络层均采用同一个所述剪枝策略。
可选地,在步骤S110中,所述滤波器权重值采用lp范数进行计算,具体采用下述关系式:
Figure BDA0002305180160000041
其中,i表示神经网络中的卷积层;
j表示第i层卷积层中的第j个滤波器;
Ni表示第i层卷积层的通道数;
K表示滤波器的大小。
可选地,所述直至最终的神经网络模型符合预设要求,包括:
判断当前神经网络模型输出的当前元属性值是否符合预设的目标元属性值,若是,则判定所述当前神经网络模型为所述最终的神经网络模型。
本发明的第二个方面提供一种神经网络模型的压缩系统,包括:
剪枝策略设定模块,用于预先设定神经网络模型中各网络层的剪枝策略,所述剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;
剪枝模块,用于在当前压缩周期,根据所述剪枝策略,从各所述网络层中选出待剪枝的剪枝滤波器,并将各所述剪枝滤波器的值设置为零;
更新模块,用于通过微调,将所述剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;
剪枝策略调整模块,用于根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整:
若是,则调整所述剪枝策略,并继续执行剪枝模块,直至最终的神经网络模型符合预设要求;
若否,则继续执行剪枝模块,直至最终的神经网络模型符合预设要求。
本发明的第三个方面提供一种电子设备,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现本发明第一个方面提供的方法。
本发明的第四个方面提供一种计算机可读存储介质,其上存储有计算机程序,
所述计算机程序被处理器执行时能实现本发明第一个方面提供的方法。
本发明提供一种神经网络模型的压缩方法、系统、电子设备及可读介质,包括预先设定神经网络模型中各网络层的剪枝策略,剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;在当前压缩周期,根据剪枝策略,从各网络层中选出待剪枝的剪枝滤波器,并将各剪枝滤波器的值设置为零;通过微调,将剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;根据当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整:若是,则调整剪枝策略,并继续执行剪枝步骤,直至最终的神经网络模型符合预设要求;若否,则继续执行剪枝,直至最终的神经网络模型符合预设要求。本发明的模型压缩方法,允许被剪枝的滤波器进行更新,不减少网络的特征图的数量,可以保持模型的表达能力和高性能;此外,剪枝的步骤集成到正常的网络训练中,不再需要额外地模型微调的阶段,可以减少网络训练的时间;根据当前模型的参数统计分布,选择最适合当前模型参数的剪枝策略,提高模型训练的效果。
附图说明
图1为本发明第一实施例的一种神经网络模型压缩方法的流程示意图;
图2为本发明第二实施例的一种神经网络模型压缩系统的组成结构图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明作进一步详细描述。
基于滤波器剪枝,需要根据经验事先选择压缩策略,例如基于权重大小的策略,基于滤波器之间相似度的策略。一旦压缩策略被选定,在整个压缩调试过程中,被选中的策略会一直保持恒定,无法根据情况的变化,例如无法根据滤波器参数概率分布的变化或深度学习模型架构的变化而进行调整。本发明提供一种基于元学习的神经网络模型压缩方法,该方法在软剪枝滤波的基础上,提出了元学习剪枝的概念和方案,以在模型调试和压缩的过程中自适应调整压缩策略。
具体地,本发明实施例中将原模型中的滤波器F分为两组,一组为被保留滤波器Fkeep,一组为被剪枝滤波器Fprune,这两组滤波器之间满足如下数学关系为:
Fkeep∪Fprune=F (1)
Figure BDA0002305180160000071
在给定输入为(X,Y)时,其中X代表训练数据,Y代表预测真实值,我们希望通过选择合适的剪枝策略,使模型能够在尽可能多的压缩的同时,预测错误率能够保持在一个较低的程度,即满足下述数学公式:
minLoss(Fkeep,X,Y) (3)
Cardinality(Fkeep)<threshold (4)
我们定义了数种元属性,来衡量每次选择某个剪枝策略进行剪枝之后的模型和剪枝之前模型的差异,例如元属性可以包括:top-1正确率,top-5正确率和模型压缩率。
具体地,每次压缩时,选择某个剪枝策略进行剪枝,得到一个剪枝之后的模型M(Fkeep),将其和剪枝之前的模型M(F)进行基于元属性的对比,将对比结果作为剪枝策略调整的依据。例如,如果元属性的差异小于一个预定义的阈值,我们就认为被选中的这个剪枝策略在当前条件下是最优的,此时不需要调整剪枝策略;反之,则进行剪枝策略的调整。经实验验证,随着剪枝过程的进行,滤波器F会不断变化,对应的概率密度也会不断变化,因此在不同时刻的被选中策略也会不同。
如图1所示,本发明提供一种神经网络模型的压缩方法S100,包括:
步骤S110、预先设定神经网络模型中各网络层的剪枝策略,剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;
步骤S120、在当前压缩周期,根据剪枝策略,从各网络层中选出待剪枝的剪枝滤波器,并将各剪枝滤波器的值设置为零;
步骤S130、通过微调,将剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;
步骤S140、根据当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整:若是,则调整剪枝策略,并继续执行步骤S120,直至最终的神经网络模型符合预设要求;若否,则继续执行步骤S120,直至最终的神经网络模型符合预设要求。
本发明的模型压缩方法S100,在每个训练周期结束时,根据滤波器重要性剪枝滤波器,滤波器按剪枝策略确定的其p-范数排序,然后选择小的进行剪枝。在滤波器剪枝之后,模型经历构造过程,其中被剪枝的滤波器能够通过后向传播过程被重建,即,允许被剪枝的滤波器从零更新。本发明的模型压缩方法,允许被剪枝的滤波器进行更新,不减少网络的特征图的数量,可以保持模型的表达能力和高性能;此外,剪枝的步骤集成到正常的网络训练中,不再需要额外地模型微调的阶段,可以减少网络训练的时间;根据当前模型的参数统计分布,选择最适合当前模型参数的剪枝策略,提高模型训练的效果。
如图1所示,在步骤S140中,根据当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整,可以通过以下步骤实现:获取当前神经网络模型输出的当前元属性值;判断当前元属性值与预设的标准元属性值之间的差异是否小于预设的第一阈值,例如,该预设的标准元属性值可以是压缩率阈值,若是,则判定下一压缩周期的剪枝策略不需要调整,当前被选中的这个剪枝策略在当前条件下是最优的;若否,则判定下一压缩周期的剪枝策略需要调整。
如图1所示,在步骤S140中,根据当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整,还可以通过下述步骤实现:分别获取当前神经网络模型输出的当前元属性值以及前一压缩周期的前一神经网络模型输出的前一元属性值。判断当前元属性值与前一元属性值之间的差异是否小于预设的第二阈值,若是,则判定下一压缩周期的剪枝策略不需要调整,当前被选中的这个剪枝策略在当前条件下是最优的;若否,则判定下一压缩周期的剪枝策略需要调整。在一些实施方式中,也可以通过判断模型的元属性值而终止模型训练,例如包括如下步骤:判断当前神经网络模型输出的当前元属性值是否符合预设的目标元属性值,若是,则判定当前神经网络模型为最终的神经网络模型。
具体地,本发明实施例的元属性可以包括top-1正确率和压缩率,基于top-1正确率和压缩率来调整剪枝策略,例如:若当前周期模型的压缩率小于元属性中的压缩率,则增大压缩率,增大剪枝阈值;若当前周期的模型top-1正确率小于元属性的top-1正确率,则减小压缩率,滤波器权重值调整为计算滤波器的L1范数,减小剪枝阈值,直到top-1正确率上升后,滤波器权重值调整回计算滤波器的L2范数。
如图1所示,在步骤S110中,各网络层可以采用同一个所述剪枝策略。具体地,在滤波器剪枝步骤中,我们可以同时剪枝所有的卷积层。并行剪枝所有层的滤波器,可以大大减少剪枝所需的时间。与逐层剪枝方法不同,本发明实施例的剪枝方法在剪枝了某一层的滤波器之后,不需要重新训练来使得网络收敛。尤其是当神经网络的深度增加时,逐层剪枝方法将会花费非常多的计算时间。此外,我们对所有的网络层使用相同的剪枝率,因此,我们只需要一个超参数Pi=P来平衡神经网络的加速比和准确度,可以避免复杂的超参数搜索或灵敏度分析。由于允许更新剪枝的滤波器,因此本发明实施例中的模型具有较大的模型容量,并且变得更加灵活,因此可以很好地平衡每个滤波器对最终预测的贡献。
如图1所示,在步骤S110中,滤波器权重值可以采用lp范数进行计算,具体采用下述关系式:
Figure BDA0002305180160000091
其中,i表示神经网络中的卷积层,j表示第i层卷积层中的第j个滤波器,Ni表示第i层卷积层的通道数,K表示滤波器的大小。
滤波器的lp范数越小,导致激活值相对较低,于是它的卷积结果越小,因此这样的滤波器对卷积神经网络的最终预测具有较小的影响。本发明实施例中优先去掉lp范数小的滤波器,即对于第i个网络层,假设网络的数目是Ni+1,我们的剪枝率是Pi,我们需要选出Ni+ 1Pi个不重要的滤波器,然后将该Ni+1Pi滤波器的值设置为零,这样的操作可以暂时消除这些滤波器对网络输出的贡献。在接下来的模型微调阶段,我们仍然允许这些被选择的滤波器继续更新,以保持模型的表达能力和高性能。
如图1所示,在步骤S130中,训练神经网络一个epoch以重建被剪枝的滤波器,反向传播将使得剪枝滤波器更新为非零。通过这种方式,使得剪枝模型在神经网络训练期间拥有与原始模型相同的容量。因此,我们可以获得与原始模型类似的性能。相反,硬剪枝方法直接删除被剪枝的滤波器,会减少网络的特征图的数量,大大降低模型的表达能力,最终会影响神经网络的性能。此外,硬剪枝方法通常需要对网络模型进行预训练,然后对剪枝后的网络模型进行微调。本发明实施例的剪枝方法可以把剪枝的步骤集成到正常的网络训练中,不再需要模型微调的阶段。实验结果表明,本发明实施例的压缩方法S100可以在不需要预训练网络的情况下,达到其他方法有预训练模型相当的结果,如果利用预训练模型,可以获得更高的性能。
在模型收敛后,可以得到一个包含许多“零滤波器”的稀疏模型。一个“零滤波器”对应一个值为零的特征图。在网络推断的过程中,对于任何输入的图片,“零滤波器”产生的特征图将始终为零。因此,删除这些滤波器以及相应的特征图对网络的性能是没有影响的。于是,得以可以构造出一个没有“零滤波器”的小网络来进行快速的网络推断。
具体来说,假设第i层的滤波器剪枝为Pi,那么需要在网络中去掉Ni+1Pi个滤波器。假设这一层的输入和输出的特征图的大小是Hi×Wi和Hi+1×Wi+1。对于第i层,输出的特征图的大小从Ni+1×Hi×Wi变成Ni+1(1-Pi)×Hi×Wi。由于第i层的输入也是第i+1层的输出,那么第i+1层的计算量从Ni+2×Ni+1×K2×Hi+2×Wi+2变成了Ni+2(1-Pi+1)×Ni+1(1-Pi)×K2×Hi+2×Wi+2。也就是说,通过剪枝的操作,网络减少了1-(1-Pi+1)×(1-Pi)比例的计算量。
例如,当选择l2范数(lp范数中p=2)作为判断滤波器重要性的参数时,假如经过上述公式的计算,有五个滤波器的l2范数分别是1.531,0.331,3.152,0.275,1.482。范数越大代表这个所对应的滤波器越重要。假设我们需要去掉两个滤波器,那么应该选择第2个和第4个滤波器。然后将第2个和第4个滤波器对应的权重置零。因此这样的“零滤波器”的l2范数也变成了0。在后续的网络更新中,我们允许第2个和第4个滤波器更新。通过更新神经网络,把置零的第2个和第4个滤波器对应的权重更新,所以他们的权重变成了非零值。因此,他们对应的l2范数也变成了非零值。更新之后,假设这五个滤波器的l2范数分别是2.476,0.324,0.056,1.556,3.245。通过对范数的排序我们知道,现在最不重要的滤波器是第2个和第3个滤波器,因为它们的范数是网络中最小的。重复经过模型的剪枝及重建步骤,把这两个滤波器进行置零,再更新整个网络,直到网络收敛。
本发明的第二方面提供一种神经网络模型的压缩系统100,该系统用于实现本发明提供的模型压缩方法,具体可参考上文记载,在此不做赘述。神经网络模型压缩系统100包括:
剪枝策略设定模块110,用于预先设定神经网络模型中各网络层的剪枝策略,剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;
剪枝模块120,用于在当前压缩周期,根据剪枝策略,从各网络层中选出待剪枝的剪枝滤波器,并将各剪枝滤波器的值设置为零;
更新模块130,用于通过微调,将剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;
剪枝策略调整模块140,用于根据当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整:若是,则调整剪枝策略,并继续执行剪枝模块,直至最终的神经网络模型符合预设要求;若否,则继续执行剪枝模块,直至最终的神经网络模型符合预设要求。
本发明的第三方面提供一种电子设备,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,能使得一个或多个处理器实现本发明的模型压缩方法。
本发明的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,
计算机程序被处理器执行时能实现根据本发明的模型压缩方法。
其中,计算机可读介质可以是本发明的装置、设备、系统中所包含的,也可以是单独存在。
其中,计算机可读存储介质可是任何包含或存储程序的有形介质,其可以是电、磁、光、电磁、红外线、半导体的系统、装置、设备,更具体的例子包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、光纤、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或它们任意合适的组合。
其中,计算机可读存储介质也可包括在基带中或作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码,其具体的例子包括但不限于电磁信号、光信号,或它们任意合适的组合。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。

Claims (10)

1.一种神经网络模型的压缩方法,其特征在于,包括:
S110、预先设定神经网络模型中各网络层的剪枝策略,所述剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;
S120、在当前压缩周期,根据所述剪枝策略,从各所述网络层中选出待剪枝的剪枝滤波器,并将各所述剪枝滤波器的值设置为零;
S130、通过微调,将所述剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;
S140、根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整:
若是,则调整所述剪枝策略,并继续执行步骤S120,直至最终的神经网络模型符合预设要求;
若否,则继续执行步骤S120,直至最终的神经网络模型符合预设要求。
2.根据权利要求1所述的方法,其特征在于,所述根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整,包括:
向所述当前神经网络模型输入预先定义的特征图;
获取所述当前神经网络模型输出的当前元属性值;
判断所述当前元属性值与预设的标准元属性值之间的差异是否小于预设的第一阈值,若是,则判定下一压缩周期的剪枝策略不需要调整;若否,则判定下一压缩周期的剪枝策略需要调整。
3.根据权利要求1所述的方法,其特征在于,所述根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整,包括:
分别获取所述当前神经网络模型输出的当前元属性值以及前一压缩周期的前一神经网络模型输出的前一元属性值;
判断所述当前元属性值与所述前一元属性值之间的差异是否小于预设的第二阈值,若是,则判定下一压缩周期的剪枝策略不需要调整;若否,则判定下一压缩周期的剪枝策略需要调整。
4.根据权利要求2或3所述的方法,其特征在于,所述元属性包括top-1正确率和压缩率,所述调整所述剪枝策略,包括:
若当前周期模型的压缩率小于元属性中的压缩率,则增大压缩率,增大剪枝阈值;
若当前周期的模型top-1正确率小于元属性的top-1正确率,则减小压缩率,所述滤波器权重值调整为计算所述滤波器的L1范数,减小剪枝阈值,直到所述top-1正确率上升后,所述滤波器权重值调整回计算所述滤波器的L2范数。
5.根据权利要求1-3任一项所述的方法,其特征在于,在步骤S110中,各网络层均采用同一个所述剪枝策略。
6.根据权利要求1-3任一项所述的方法,其特征在于,在步骤S110中,所述滤波器权重值采用lp范数进行计算,具体采用下述关系式:
Figure FDA0002305180150000021
其中,i表示神经网络中的卷积层;
j表示第i层卷积层中的第j个滤波器;
Ni表示第i层卷积层的通道数;
K表示滤波器的大小。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述直至最终的神经网络模型符合预设要求,包括:
判断当前神经网络模型输出的当前元属性值是否符合预设的目标元属性值,若是,则判定所述当前神经网络模型为所述最终的神经网络模型。
8.一种神经网络模型的压缩系统,其特征在于,包括:
剪枝策略设定模块,用于预先设定神经网络模型中各网络层的剪枝策略,所述剪枝策略包括剪枝率、剪枝阈值和滤波器权重值;
剪枝模块,用于在当前压缩周期,根据所述剪枝策略,从各所述网络层中选出待剪枝的剪枝滤波器,并将各所述剪枝滤波器的值设置为零;
更新模块,用于通过微调,将所述剪枝滤波器的值设置为非零值,以更新神经网络模型,获得当前神经网络模型;
剪枝策略调整模块,用于根据所述当前神经网络模型输出的当前元属性值,确定下一压缩周期的剪枝策略是否需要调整:
若是,则调整所述剪枝策略,并继续执行剪枝模块,直至最终的神经网络模型符合预设要求;
若否,则继续执行剪枝模块,直至最终的神经网络模型符合预设要求。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储单元,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,能使得所述一个或多个处理器实现根据权利要求1至7中任意一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,
所述计算机程序被处理器执行时能实现根据权利要求1至7中任意一项所述的方法。
CN201911237119.XA 2019-12-05 2019-12-05 神经网络模型压缩方法、系统、设备及介质 Pending CN111079899A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911237119.XA CN111079899A (zh) 2019-12-05 2019-12-05 神经网络模型压缩方法、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911237119.XA CN111079899A (zh) 2019-12-05 2019-12-05 神经网络模型压缩方法、系统、设备及介质

Publications (1)

Publication Number Publication Date
CN111079899A true CN111079899A (zh) 2020-04-28

Family

ID=70313173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911237119.XA Pending CN111079899A (zh) 2019-12-05 2019-12-05 神经网络模型压缩方法、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN111079899A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111553169A (zh) * 2020-06-25 2020-08-18 北京百度网讯科技有限公司 语义理解模型的剪枝方法、装置、电子设备和存储介质
CN111814975A (zh) * 2020-07-09 2020-10-23 广东工业大学 一种基于剪枝的神经网络模型构建方法及相关装置
CN112396181A (zh) * 2020-12-31 2021-02-23 之江实验室 一种卷积神经网络通用压缩架构的自动剪枝方法及平台
CN113033779A (zh) * 2021-03-18 2021-06-25 联想(北京)有限公司 一种基于设备参数的模型处理方法及电子设备
CN113128664A (zh) * 2021-03-16 2021-07-16 广东电力信息科技有限公司 神经网络压缩方法、装置、电子设备及存储介质
CN113240085A (zh) * 2021-05-12 2021-08-10 平安科技(深圳)有限公司 模型剪枝方法、装置、设备及存储介质
CN113435585A (zh) * 2021-07-15 2021-09-24 支付宝(杭州)信息技术有限公司 一种业务处理方法、装置及设备
CN113673693A (zh) * 2020-05-15 2021-11-19 宏碁股份有限公司 深度神经网络压缩的方法
CN114154589A (zh) * 2021-12-13 2022-03-08 成都索贝数码科技股份有限公司 一种基于相似性的模块减枝方法
CN114677545A (zh) * 2022-03-29 2022-06-28 电子科技大学 一种基于相似性剪枝和高效模块的轻量化图像分类方法
CN116451771A (zh) * 2023-06-14 2023-07-18 中诚华隆计算机技术有限公司 图像分类卷积神经网络压缩方法及芯粒器件数据分配方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113673693B (zh) * 2020-05-15 2024-03-12 宏碁股份有限公司 深度神经网络压缩的方法
CN113673693A (zh) * 2020-05-15 2021-11-19 宏碁股份有限公司 深度神经网络压缩的方法
CN111553169A (zh) * 2020-06-25 2020-08-18 北京百度网讯科技有限公司 语义理解模型的剪枝方法、装置、电子设备和存储介质
CN111553169B (zh) * 2020-06-25 2023-08-25 北京百度网讯科技有限公司 语义理解模型的剪枝方法、装置、电子设备和存储介质
CN111814975A (zh) * 2020-07-09 2020-10-23 广东工业大学 一种基于剪枝的神经网络模型构建方法及相关装置
CN111814975B (zh) * 2020-07-09 2023-07-28 广东工业大学 一种基于剪枝的神经网络模型构建方法及相关装置
WO2022141754A1 (zh) * 2020-12-31 2022-07-07 之江实验室 一种卷积神经网络通用压缩架构的自动剪枝方法及平台
CN112396181A (zh) * 2020-12-31 2021-02-23 之江实验室 一种卷积神经网络通用压缩架构的自动剪枝方法及平台
CN113128664A (zh) * 2021-03-16 2021-07-16 广东电力信息科技有限公司 神经网络压缩方法、装置、电子设备及存储介质
CN113033779A (zh) * 2021-03-18 2021-06-25 联想(北京)有限公司 一种基于设备参数的模型处理方法及电子设备
CN113240085A (zh) * 2021-05-12 2021-08-10 平安科技(深圳)有限公司 模型剪枝方法、装置、设备及存储介质
CN113240085B (zh) * 2021-05-12 2023-12-22 平安科技(深圳)有限公司 模型剪枝方法、装置、设备及存储介质
CN113435585A (zh) * 2021-07-15 2021-09-24 支付宝(杭州)信息技术有限公司 一种业务处理方法、装置及设备
CN114154589A (zh) * 2021-12-13 2022-03-08 成都索贝数码科技股份有限公司 一种基于相似性的模块减枝方法
CN114154589B (zh) * 2021-12-13 2023-09-29 成都索贝数码科技股份有限公司 一种基于相似性的模块减枝方法
CN114677545A (zh) * 2022-03-29 2022-06-28 电子科技大学 一种基于相似性剪枝和高效模块的轻量化图像分类方法
CN116451771A (zh) * 2023-06-14 2023-07-18 中诚华隆计算机技术有限公司 图像分类卷积神经网络压缩方法及芯粒器件数据分配方法
CN116451771B (zh) * 2023-06-14 2023-09-15 中诚华隆计算机技术有限公司 图像分类卷积神经网络压缩方法及芯粒器件数据分配方法

Similar Documents

Publication Publication Date Title
CN111079899A (zh) 神经网络模型压缩方法、系统、设备及介质
CN109978142B (zh) 神经网络模型的压缩方法和装置
CN109635935B (zh) 基于模长聚类的深度卷积神经网络模型自适应量化方法
CN111461322B (zh) 一种深度神经网络模型压缩方法
CN114037844A (zh) 基于滤波器特征图的全局秩感知神经网络模型压缩方法
JP6950756B2 (ja) ニューラルネットワークのランク最適化装置および最適化方法
JP2023523029A (ja) 画像認識モデル生成方法、装置、コンピュータ機器及び記憶媒体
CN112215353B (zh) 一种基于变分结构优化网络的通道剪枝方法
CN110363297A (zh) 神经网络训练及图像处理方法、装置、设备和介质
KR20220091575A (ko) 신경망 모델을 압축하는 방법 및 기기
CN112488304A (zh) 一种卷积神经网络中的启发式滤波器剪枝方法和系统
CN112598129A (zh) 基于ReRAM神经网络加速器的可调硬件感知的剪枝和映射框架
CN116188878A (zh) 基于神经网络结构微调的图像分类方法、装置和存储介质
CN113919484A (zh) 基于深度卷积神经网络模型的结构化剪枝方法和装置
CN110826692B (zh) 一种自动化模型压缩方法、装置、设备及存储介质
GB2599137A (en) Method and apparatus for neural architecture search
CN110263917B (zh) 一种神经网络压缩方法及装置
CN113837376B (zh) 基于动态编码卷积核融合的神经网络剪枝方法
CN112395273A (zh) 一种数据处理方法及装置、存储介质
CN110659735A (zh) 一种动态调整神经网络通道的方法、装置以及设备
CN113344182A (zh) 一种基于深度学习的网络模型压缩方法
CN110874635A (zh) 一种深度神经网络模型压缩方法及装置
US20210271932A1 (en) Method, device, and program product for determining model compression rate
CN116384471A (zh) 模型剪枝方法、装置、计算机设备、存储介质和程序产品
Peter et al. Resource-efficient dnns for keyword spotting using neural architecture search and quantization

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

Application publication date: 20200428

RJ01 Rejection of invention patent application after publication