神经网络模型的压缩方法、压缩装置和部署方法制造方法及图纸

技术编号:38346039 阅读:16 留言:0更新日期:2023-08-02 09:26
本发明专利技术提供了一种神经网络模型的压缩方法、压缩装置和部署方法。其中压缩方法包括:获取训练好的第一神经网络模型;将训练数据输入第一神经网络模型得到第一输出结果和尾部特征,尾部特征为第一神经网络模型的最后一个卷积层的特征;将尾部特征拆分为K组特征,K为大于1的整数;根据K组特征训练K个子任务模型,K个子任务模型的输出特征与K组特征的损失函数小于第一预设阈值;将K个子任务模型替换第一神经网络模型中输出层之前的网络,得到压缩后的第二神经网络模型。本发明专利技术通过K个轻量化的子任务模型模拟第一神经网络模型的尾部特征,从而减少神经网络模型的参数和计算量,降低对计算资源和内存的要求。计算资源和内存的要求。计算资源和内存的要求。

【技术实现步骤摘要】
神经网络模型的压缩方法、压缩装置和部署方法


[0001]本专利技术主要涉及人工智能
,尤其涉及一种神经网络模型的压缩方法、压缩装置和部署方法。

技术介绍

[0002]在人工智能的实际应用场景中往往对模型计算速度、网络传输速度等有较高的要求。常用的方法是将神经网络模型直接部署在边缘设备上,从而节约数据上行到云端设备和下行到用户设备的时间。
[0003]然而,随着人工智能领域对机器智能化需求的提高,神经网络模型越来越复杂,所需的计算量和存储空间也随之大大增加。边缘设备的计算和存储等资源有限,这使得神经网络模型难以在边缘设备上高效的部署。因此需对神经网络模型进行压缩以完成轻量级部署,模型压缩是一种能有效解决模型尺寸大、运行效率慢等缺点的方法。

技术实现思路

[0004]本专利技术要解决的技术问题是提供一种神经网络模型的压缩方法、压缩装置和部署方法,解决计算量大的神经网络模型难以在边缘设备上高效的部署的问题。
[0005]为解决上述技术问题,本专利技术提供了一种神经网络模型的压缩方法,包括:获取训练好的第一神经网络模型;将训练数据输入所述第一神经网络模型得到第一输出结果和尾部特征,所述尾部特征为所述第一神经网络模型的最后一个卷积层的特征;将所述尾部特征拆分为K组特征,K为大于1的整数;根据所述K组特征训练K个子任务模型,所述K个子任务模型的输出特征与所述K组特征的损失函数小于第一预设阈值;将所述K个子任务模型替换所述第一神经网络模型中输出层之前的网络,得到压缩后的第二神经网络模型。/>[0006]可选地,根据所述K组特征训练K个子任务模型包括:构建K个未经训练的初始子任务模型;将所述K组特征中每组特征作为一个所述初始子任务模型的目标输出结果;将所述训练数据输入所述初始子任务模型得到实际输出结果;根据所述实际输出结果与所述目标输出结果的子损失函数对所述初始子任务模型进行迭代训练,得到训练好的子任务模型。
[0007]可选地,所述初始子任务模型为mobilenet v3模型。
[0008]可选地,方法还包括:判断K个子任务模型中每个子任务模型的计算量是否小于预设第二预设阈值,如果否,增大K的值,重新构建所述第二神经网络模型。
[0009]可选地,方法还包括:判断K个子任务模型中每个子任务模型的计算时间是否小于预设第三预设阈值,如果否,增大K的值,重新构建所述第二神经网络模型。
[0010]可选地,方法还包括:将所述训练数据输入所述第二神经网络模型得到第二输出结果;根据所述第一输出结果和所述第二输出结果对所述第二神经网络模型的参数进行微调,得到优化后的第三神经网络模型。
[0011]可选地,所述损失函数包括距离损失。
[0012]为解决上述技术问题,本专利技术提供了一种神经网络模型的压缩装置,包括:存储
器,用于存储可由处理器执行的指令;处理器,用于执行所述指令以实现如上所述的压缩方法。
[0013]为解决上述技术问题,本专利技术提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时如上所述的压缩方法。
[0014]为解决上述技术问题,本专利技术提供了一种神经网络模型的部署方法,包括:采用如上所述的方法获得压缩后的第二神经网络模型;将所述第二神经网络模型中每个子任务模型部署在一个边缘设备上;将所述第二神经网络模型中的输出层部署在主控设备上。
[0015]为解决上述技术问题,本专利技术提供了一种神经网络模型的部署系统,包括:多个边缘设备,每个边缘设备上部署了第二神经网络模型中的一个子任务模型,多个边缘设备的数量与所述子任务模型的数量相等;主控设备,其上部署了第二神经网络模型中的输出层。
[0016]与现有技术相比,本专利技术具有以下优点:
[0017]本专利技术的神经网络模型的压缩方法和压缩装置,通过将第一神经网络模型的尾部特征拆分为K组特征,根据K组特征训练K个轻量化的子任务模型,将K个子任务模型替换原来的特征提取网络,从而减少神经网络模型的参数和计算量,降低对计算资源和内存的要求,可以广泛运行在资源受限的边缘设备上;本专利技术的神经网络模型的部署方法中各个边缘设备之间的数据交互量极少,设备之间的计算通路相互独立,所以即便这些设备之间由于性能差异,单个设备也不会因为其他设备的计算瓶颈导致自身降速,从而能最大化提高整个神经网络模型的计算效率。
附图说明
[0018]包括附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本专利技术原理的作用。附图中:
[0019]图1是根据本专利技术一实施例的神经网络模型的压缩方法的流程图;
[0020]图2是根据本专利技术一实施例的第一神经网络模型的结构示意图;
[0021]图3是图1中步骤S14一实施例的流程图;
[0022]图4是根据本专利技术一实施例的根据K组特征训练K个子任务模型的示意图;
[0023]图5是根据本专利技术一实施例的第二神经网络模型的结构示意图;
[0024]图6是图1优化实施例的神经网络模型的压缩方法的流程图;
[0025]图7是本申请一实施例的神经网络模型的压缩设备的系统框图;
[0026]图8是根据本专利技术一实施例的神经网络模型的部署方法的流程图;
[0027]图9是根据本专利技术一实施例的神经网络模型的部署系统框图。
具体实施方式
[0028]为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
[0029]如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一
种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
[0030]除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0031]此外,需要说明的是,使用“第一”、“第二”等词语来限定零部件,仅本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种神经网络模型的压缩方法,其特征在于,包括:获取训练好的第一神经网络模型;将训练数据输入所述第一神经网络模型得到第一输出结果和尾部特征,所述尾部特征为所述第一神经网络模型的最后一个卷积层的特征;将所述尾部特征拆分为K组特征,K为大于1的整数;根据所述K组特征训练K个子任务模型,所述K个子任务模型的输出特征与所述K组特征的损失函数小于第一预设阈值;将所述K个子任务模型替换所述第一神经网络模型中输出层之前的网络,得到压缩后的第二神经网络模型。2.如权利要求1所述的方法,其特征在于,根据所述K组特征训练K个子任务模型包括:构建K个未经训练的初始子任务模型;将所述K组特征中每组特征作为一个所述初始子任务模型的目标输出结果;将所述训练数据输入所述初始子任务模型得到实际输出结果;根据所述实际输出结果与所述目标输出结果的子损失函数对所述初始子任务模型进行迭代训练,得到训练好的子任务模型。3.如权利要求2所述的方法,其特征在于,所述初始子任务模型为mobilenet v3模型。4.如权利要求1所述的方法,其特征在于,还包括:判断K个子任务模型中每个子任务模型的计算量是否小于预设第二预设阈值,如果否,增大K的值,重新构建所述第二神经网络模型。5.如权利要求1所述的方法,其特征在于,还包括:判断K个子任务模型中每个子任务模型的计算时间是否小于预设第三预设阈值,如果否,...

【专利技术属性】
技术研发人员:丁超林喆
申请(专利权)人:深圳米开朗基罗科技有限公司
类型:发明
国别省市:

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

1