本申请实施例公开了一种神经网络剪枝方法及相关产品,方法包括:确定第一模型,其中,所述第一模型支持细粒度训练;对所述第一模型进行分析,以剪去不达标的权值,得到第二模型;对所述第二模型对应的权值进行初始化,得到第三模型;对所述第三模型进行迭代训练,直至所述第三模型收敛或迭代次数达到最大迭代次数;在每一代所述迭代训练中,判断每一代迭代训练得到的第四模型对应的压缩比是否达标;若所述压缩比达标,则确定剪枝操作结束。采用本申请实施例有利于提高训练灵活性,并有利于开发者针对自身的应用场景进行灵活定制,从而避免由于剪去部分不重要的权重而造成神经网络模型表达能力受损的影响。表达能力受损的影响。表达能力受损的影响。
【技术实现步骤摘要】
神经网络剪枝方法及相关产品
[0001]本申请涉及电子设备
,具体涉及一种神经网络剪枝方法及相关产品。
技术介绍
[0002]随着深度学习技术的进步,神经网络模型(例如,深度神经网络(Deep Neural Network,DNN)、卷积神经网络(Convolutional Neural Network,CNN)等等)在机器视觉、自动驾驶、自然语言等领域中的应用日益广泛。然而其复杂的结构导致即使在推理时需占用大量的功耗和资源(例如,算力、内存、存储空间等),严重限制了此类技术在功耗和资源受限的移动和嵌入式平台上的部署,因而会对其进行一定的压缩。目前对神经网络模型进行压缩的方法主要有量化(quantization)、剪枝(pruning)、知识蒸馏(knowledge distillation)、神经网络结构搜索(neural architecture search,NAS)等。
[0003]其中,剪枝是指从原始神经网络模型(Neural Network,NN)中系统性地剪去部分不重要的权重而尽量少地损失精度,以减少NN的参数量;在这种情况下,即使剪去的主要是不重要的权重,但是仍然会对神经网络的表达能力造成一定程度的影响。
技术实现思路
[0004]本申请实施例提供了一种神经网络剪枝方法及相关产品,有利于提高训练灵活性,并有利于开发者针对自身的应用场景进行灵活定制,从而避免由于剪去部分不重要的权重而造成神经网络模型表达能力受损的影响
[0005]第一方面,本申请实施例提供一种神经网络剪枝方法,所述方法包括:
[0006]确定第一模型,其中,所述第一模型支持细粒度训练;
[0007]对所述第一模型进行分析,以剪去不达标的权值,得到第二模型;
[0008]对所述第二模型对应的权值进行初始化,得到第三模型;
[0009]对所述第三模型进行迭代训练,直至所述第三模型收敛或迭代次数达到最大迭代次数;
[0010]在每一代所述迭代训练中,判断每一代迭代训练得到的第四模型对应的压缩比是否达标;
[0011]若所述压缩比达标,则确定剪枝操作结束。
[0012]第二方面,本申请实施例提供一种神经网络剪枝装置,应用于电子设备,所述装置包括:确定单元、分析单元、初始化单元、迭代训练单元和判断单元,其中,
[0013]所述确定单元,用于确定第一模型,其中,所述第一模型支持细粒度训练;
[0014]所述分析单元,用于对所述第一模型进行分析,以剪去不达标的权值,得到第二模型;
[0015]所述初始化单元,用于对所述第二模型对应的权值进行初始化,得到第三模型;
[0016]所述迭代训练单元,用于对所述第三模型进行迭代训练,直至所述第三模型收敛或迭代次数达到最大迭代次数;
[0017]所述判断单元,用于在每一代所述迭代训练中,判断每一代迭代训练得到的第四模型对应的压缩比是否达标;
[0018]所述确定单元,还用于若所述压缩比达标,则确定剪枝操作结束。
[0019]第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面任一方法中的步骤的指令。
[0020]第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
[0021]第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
[0022]可以看出,本申请实施例中,电子设备可确定第一模型,其中,所述第一模型支持细粒度训练;对所述第一模型进行分析,以剪去不达标的权值,得到第二模型;对所述第二模型对应的权值进行初始化,得到第三模型;对所述第三模型进行迭代训练,直至所述第三模型收敛或迭代次数达到最大迭代次数;在每一代所述迭代训练中,判断每一代迭代训练得到的第四模型对应的压缩比是否达标;若所述压缩比达标,则确定剪枝操作结束。如此,通过引入对剪枝后训练过程中的初始化、重训练等方法,有利于提高训练灵活性,并有利于开发者针对自身的应用场景进行灵活定制,从而避免由于剪去部分不重要的权重而造成神经网络模型表达能力受损的影响,有利于提高对剪枝后恢复表达能力学习曲线的精细掌控,有利于提高剪枝精度。
附图说明
[0023]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0024]图1A是本申请实施例提供的一种网络剪枝方法的流程示意图;
[0025]图1B是本申请实施例提供的一种网络剪枝方法的流程示意图;
[0026]图1C是本申请实施例提供的一种网络剪枝方法的流程示意图;
[0027]图2A是本申请实施例提供的一种神经网络剪枝方法的流程示意图;
[0028]图2B是本申请实施例提供的一种神经网络剪枝方法的流程示意图;
[0029]图3是本申请实施例提供的一种电子设备的结构示意图;
[0030]图4是本申请实施例提供的一种神经网络剪枝装置的功能单元组成框图。
具体实施方式
[0031]为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是
本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0032]本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
[0033]在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0034]电子设备可以是还包含本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种神经网络剪枝方法,其特征在于,包括:确定第一模型,其中,所述第一模型支持细粒度训练;对所述第一模型进行分析,以剪去不达标的权值,得到第二模型;对所述第二模型对应的权值进行初始化,得到第三模型;对所述第三模型进行迭代训练,直至所述第三模型收敛或迭代次数达到最大迭代次数;在每一代所述迭代训练中,判断每一代迭代训练得到的第四模型对应的压缩比是否达标;若所述压缩比达标,则确定剪枝操作结束。2.根据权利要求1所述的方法,其特征在于,所述确定第一模型,包括:获取原始模型以及所述原始模型中每一层网络模型对应的训练细粒度;根据所述每一层网络模型对应的训练细粒度,确定在所述每一代迭代训练过程中所述每一层网络模型需要打开和/或关闭和/或减慢的权值;根据所述需要打开和/或关闭和/或减慢的权值,对所述原始模型的每一层网络模型进行调度,得到所述第一模型。3.根据权利要求1或2所述的方法,其特征在于,所述对所述第一模型进行分析,以剪去不达标的权值,得到第二模型,包括:确定所述第一模型对应的最小剪枝单位;根据所述最小剪枝单位,对所述第一模型对应的权值进行分组,得到多个权值组;根据所述多个权值组,对所述第一模型进行逐层或者全局识别,以筛选出不达标的权值,得到所述第二模型。4.根据权利要求3所述的方法,其特征在于,所述根据所述多个权值组,对所述第一模型进行逐层或者全局识别,以筛选出不达标的权值,得到所述第二模型,包括:根据所述多个权值组,确定每一权值组对应的L0范数和/或L1范数和/或L2范数;确定所述L0范数和/或所述L1范数和/或所述L2范数小于预设阈值的权值组包括的权值为所述不达标的权值;剪去所述不达标的权值,得到所述第二模型。5.根据权利要求4所述的方法,其特征在于,...
【专利技术属性】
技术研发人员:李文进,
申请(专利权)人:OPPO广东移动通信有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。