当前位置: 首页 > 专利查询>清华大学专利>正文

边缘设备推理加速方法、装置和数据处理系统制造方法及图纸

技术编号:35145512 阅读:37 留言:0更新日期:2022-10-05 10:22
本公开提供了一种边缘设备推理加速方法、装置、系统、介质和程序产品,可以应用于人工智能技术领域。该方法包括:获得预先训练的第一神经网络模型;对所述第一神经网络模型中的至少一个卷积层和/或至少一个卷积核进行剪枝,得到第二神经网络模型;获得所述第二神经网络模型在待部署的边缘设备运行的第一推理时间;若所述第一推理时间小于目标推理时间,确定所述第二神经网络模型为符合所述边缘设备部署要求的模型。能够以目标推理时间为约束,利用神经网络剪枝方法进行模型压缩,可针对待部署的边缘设备剪枝出满足部署需求的模型,实现特定边缘设备的推理加速。本公开还提供了一种部署在边缘设备的数据处理系统。署在边缘设备的数据处理系统。署在边缘设备的数据处理系统。

【技术实现步骤摘要】
边缘设备推理加速方法、装置和数据处理系统


[0001]本公开涉及人工智能领域,更具体地,涉及一种边缘设备推理加速方法、装置、数据处理系统、边缘设备推理加速系统、介质和程序产品。

技术介绍

[0002]通常精度符合要求的神经网络模型的参数量和浮点计算量都很大,很难在如可穿戴设备、车载系统等边缘设备上部署。相关技术中,可以对神经网络模型进行压缩,减小参数量和浮点计算量。然而神经网络模型在边缘设备上的推理时间与边缘设备的诸多特性息息相关,例如设备型号、输入数据类型、访存带宽和数据对齐方式等因素。因此,将相关技术中压缩后的神经网络模型部署在特定边缘设备中,存在推理速度较慢的问题。

技术实现思路

[0003]鉴于上述问题,本公开提供了一种边缘设备推理加速方法、装置、数据处理系统、边缘设备推理加速系统、介质和程序产品。
[0004]本公开实施例的一个方面提供了一种边缘设备推理加速方法,包括:获得预先训练的第一神经网络模型,其中,所述第一神经网络模型包括N个卷积层,每个卷积层包括至少一个卷积核,N为大于或等于1的整数;对所述第一神经网络模型中的至少一个卷积层和/或至少一个卷积核进行剪枝,得到第二神经网络模型;获得所述第二神经网络模型在待部署的边缘设备运行的第一推理时间,其中,所述第一推理时间包括利用所述第二神经网络模型处理特定输入数据并得到处理结果的时间;若所述第一推理时间小于目标推理时间,确定所述第二神经网络模型为符合所述边缘设备部署要求的模型,其中,所述部署要求包括对所述待部署的边缘设备的推理加速要求,所述目标推理时间根据所述待部署的边缘设备的性能预先设置。
[0005]根据本公开的实施例,在对所述第一神经网络模型中的至少一个卷积层和/或至少一个卷积核进行剪枝之前,还包括:根据所述每个卷积层的重要度,获得所述每个卷积层的第一分数,其中,所述重要度用于表征对所述第一神经网络模型在验证集的第一损失函数值的影响程度;根据所述N个卷积层的第一分数的大小进行排序得到第一排序结果,其中,所述第一排序结果用于作为对所述每个卷积层进行剪枝的依据。
[0006]根据本公开的实施例,第i个卷积层为所述N个卷积层中的任一个,i大于或等于1,且i小于或等于N,所述获得所述每个卷积层的第一分数包括:令i的初始值为1,循环执行以下操作,从所述第一神经网络模型中剪枝所述第i个卷积层,得到第三神经网络模型;获得所述第三神经网络模型在验证集的第三损失函数值;根据所述第三损失函数值获得所述第i个卷积层的第一分数;若i的值小于N,令i的值加1。
[0007]根据本公开的实施例,还包括:根据M个剪枝比例,分别对所述i个卷积层中的卷积核进行剪枝,得到M个第四神经网络模型,M为大于或等于1的整数;分别获得所述M个第四神经网络模型在所述验证集上的M个第四损失函数值;其中,根据所述第三损失函数值获得所
述第i个卷积层的第一分数包括:根据所述第三损失函数值和所述M个第四损失函数值,获得所述第i个卷积层的第一分数。
[0008]根据本公开的实施例,所述每个卷积层的第一分数与重要度正相关,对所述第一神经网络模型中的至少一个卷积层和/或至少一个卷积核进行剪枝,得到第二神经网络模型包括:根据所述第一排序结果中从小至大的顺序,依次对所述每个卷积层进行剪枝。
[0009]根据本公开的实施例,第j个顺序为所述第一排序结果中的任一个,j大于或等于1,且j小于或等于N,所述根据所述第一排序结果中从小至大的顺序,依次对所述每个卷积层进行剪枝包括:令j的初始值为1,循环执行以下操作,在当前待剪枝模型的基础上,对所述第一神经网络模型中第j个顺序的卷积层进行剪枝,得到第五神经网络模型;获得所述第五神经网络模型在所述验证集的第五损失函数值;若所述第一损失函数值和所述第五损失函数值之间的第一变化量小于目标变化量,将所述第五神经网络模型作为所述当前待剪枝模型,并在j的值小于N的情况下,令j的值加1后执行下一次循环。
[0010]根据本公开的实施例,若所述第一损失函数值和所述第五损失函数值之间的第一变化量大于或等于目标变化量,在所述令j的值加1之前,还包括:对所述第j个顺序的卷积层进行卷积核剪枝,得到第六神经网络模型;获得所述第六神经网络模型在所述验证集上的第六损失函数值;若所述第一损失函数值和所述第六损失函数值之间的第二变化量小于所述目标变化量,将所述第六神经网络模型作为所述当前待剪枝模型,并在j的值小于N的情况下,令j的值加1后执行下一次循环;或若所述第一损失函数值和所述第六损失函数值之间的第二变化量大于或等于所述目标变化量,不将所述第六神经网络模型作为所述当前待剪枝模型,并在j的值小于N的情况下,令j的值加1后执行下一次循环。
[0011]根据本公开的实施例,在对所述第j个顺序的卷积层进行卷积核剪枝之前,包括:根据每个卷积核的所述重要度,获得所述每个卷积核的第二分数;对所述每个卷积层中所有卷积核的第二分数的大小进行排序,得到N个第二排序结果,其中,所述N个第一排序结果用于作为对所述每个卷积核进行剪枝的依据。
[0012]根据本公开的实施例,第i个卷积层为所述N个卷积层中的任一个,i大于或等于1,且i小于或等于N,所述获得所述每个卷积核的第二分数包括:令i的初始值为1,循环执行以下操作,将所述验证集作为所述第一神经网络模型的输入,得到所述第i个卷积层中每个卷积核的参数对,其中,所述参数对包括梯度值和权重值,所述梯度值根据反向传播算法得到;根据所述第i个卷积层中每个卷积核的参数对,得到所述第i个卷积层中每个卷积核的第二分数;若i的值小于N,令i的值加1。
[0013]根据本公开的实施例,所述验证集包括S个子集,S大于或等于2,所述将所述验证集作为所述第一神经网络模型的输入,得到所述第i个卷积层中每个卷积核的参数对包括:将所述S个子集中至少两个子集作为所述第一神经网络模型的输入,对应得到所述第i个卷积层中每个卷积核的至少两个参数对,其中,所述至少两个参数对中每个参数对根据所述至少两个子集中每个子集来获得。
[0014]根据本公开的实施例,所述根据所述第i个卷积层中每个卷积核的参数对,得到所述第i个卷积层中每个卷积核的第二分数包括:根据所述至少两个参数对,对应得到所述第i个卷积层中每个卷积核的至少两个第三分数;根据所述至少两个第三分数,得到所述第i个卷积层中每个卷积核的第二分数。
[0015]根据本公开的实施例,所述每个卷积核的第二分数与重要度正相关,对所述第j个顺序的卷积层进行卷积核剪枝包括:根据所述第二排序结果中从小至大的顺序,对所述第j个顺序的卷积层中至少一个卷积核进行剪枝。
[0016]根据本公开的实施例,所述第j个顺序的卷积层包括Q个卷积核,Q大于等于1,所述根据所述第二排序结果中从小至大的顺序,对所述第j个顺序的卷积层中至少一个卷积核进行剪枝包括:循环执行以下操作,其中,循环结束后得到的模型作为所述第六神经网络模型:根据所述第二排序结果中从小至大的顺序,得到p个卷积核;在p的值大于或等于1,且小于Q的情况本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种边缘设备推理加速方法,包括:获得预先训练的第一神经网络模型,其中,所述第一神经网络模型包括N个卷积层,每个卷积层包括至少一个卷积核,N为大于或等于1的整数;对所述第一神经网络模型中的至少一个卷积层和/或至少一个卷积核进行剪枝,得到第二神经网络模型;获得所述第二神经网络模型在待部署的边缘设备运行的第一推理时间,其中,所述第一推理时间包括利用所述第二神经网络模型处理特定输入数据并得到处理结果的时间;若所述第一推理时间小于目标推理时间,确定所述第二神经网络模型为符合所述边缘设备部署要求的模型,其中,所述部署要求包括对所述待部署的边缘设备的推理加速要求,所述目标推理时间根据所述待部署的边缘设备的性能预先设置。2.根据权利要求1所述的方法,其中,在对所述第一神经网络模型中的至少一个卷积层和/或至少一个卷积核进行剪枝之前,还包括:根据所述每个卷积层的重要度,获得所述每个卷积层的第一分数,其中,所述重要度用于表征对所述第一神经网络模型在验证集的第一损失函数值的影响程度;根据所述N个卷积层的第一分数的大小进行排序得到第一排序结果,其中,所述第一排序结果用于作为对所述每个卷积层进行剪枝的依据。3.根据权利要求2所述的方法,其中,第i个卷积层为所述N个卷积层中的任一个,i大于或等于1,且i小于或等于N,所述获得所述每个卷积层的第一分数包括:令i的初始值为1,循环执行以下操作,从所述第一神经网络模型中剪枝所述第i个卷积层,得到第三神经网络模型;获得所述第三神经网络模型在验证集的第三损失函数值;根据所述第三损失函数值获得所述第i个卷积层的第一分数;若i的值小于N,令i的值加1。4.根据权利要求3所述的方法,其中,还包括:根据M个剪枝比例,分别对所述i个卷积层中的卷积核进行剪枝,得到M个第四神经网络模型,M为大于或等于1的整数;分别获得所述M个第四神经网络模型在所述验证集上的M个第四损失函数值;其中,根据所述第三损失函数值获得所述第i个卷积层的第一分数包括:根据所述第三损失函数值和所述M个第四损失函数值,获得所述第i个卷积层的第一分数。5.根据权利要求2所述的方法,其中,所述每个卷积层的第一分数与重要度正相关,对所述第一神经网络模型中的至少一个卷积层和/或至少一个卷积核进行剪枝,得到第二神经网络模型包括:根据所述第一排序结果中从小至大的顺序,依次对所述每个卷积层进行剪枝。6.根据权利要求5所述的方法,其中,第j个顺序为所述第一排序结果中的任一个,j大于或等于1,且j小于或等于N,所述根据所述第一排序结果中从小至大的顺序,依次对所述每个卷积层进行剪枝包括:令j的初始值为1,循环执行以下操作,在当前待剪枝模型的基础上,对所述第一神经网络模型中第j个顺序的卷积层进行剪枝,得到第五神经网络模型;
获得所述第五神经网络模型在所述验证集的第五损失函数值;若所述第一损失函数值和所述第五损失函数值之间的第一变化量小于目标变化量,将所述第五神经网络模型作为所述当前待剪枝模型,并在j的值小于N的情况下,令j的值加1后执行下一次循环。7.根据权利要求6所述的方法,其中,若所述第一损失函数值和所述第五损失函数值之间的第一变化量大于或等于目标变化量,还包括:对所述第j个顺序的卷积层进行卷积核剪枝,得到第六神经网络模型;获得所述第六神经网络模型在所述验证集上的第六损失函数值;若所述第一损失函数值和所述第六损失函数值之间的第二变化量小于所述目标变化量,将所述第六神经网络模型作为所述当前待剪枝模型,并在j的值小于N的情况下,令j的值加1后执行下一次循环;或若所述第一损失函数值和所述第六损失函数值之间的第二变化量大于或等于所述目标变化量,不将所述第六神经网络模型作为所述当前待剪枝模型,并在j的值小于N的情况下,令j的值加1后执行下一次循环。8.根据权利要求7所述的方法,其中,在对所述第j个顺序的卷积层进行卷积核剪枝之前,包括:根据每个卷积核的所述重要度,获得所述每个卷积核的第二分数;对所述每个卷积层中所有卷积核的第二分数的大小进行排序,得到N个第二排序结果,其中,所述N个第一排序结果用于作为对所述每个卷积核进行剪枝的依据。9.根据权利要求8所述的方法,其中,第i个卷积层为所述N个卷积层中的任一个,i大于或等于1,且i小于或等于N,所述获得所述每个卷积核的第二分数包括:令i的初始值为1,循环执行以下操作,将所述验证集作为所述第一神经网络模型的输入,得到所述第i个卷积层中每个卷积核的参数对,其中,所述参数对包括梯度值和权重值,所述梯度值根据反向传播算法得到;根据所述第i个卷积层中每个卷积核的参数对,得到所述第i个卷积层中每个卷积核的第二分数;若i的值小于N,令i的值加1。10.根据权利要求9所述的方法,其中,所述验证集包括S个子集,S大于或等于2,所述将所述验证集作为所述第一神经网络模型的输入,得到所述第i个卷积层中每个卷积核的参数对包括:将所述S个子集中至少两个子集作为所述第一神经网络模型的输入,对应得到所述第i个卷积层中每个卷积核的至少两个参数对,其中,所述至少两...

【专利技术属性】
技术研发人员:陈志强张丽李栋孙运达叶倩倩
申请(专利权)人:清华大学
类型:发明
国别省市:

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

1