一种神经网络模型处理、推理方法及相关设备与流程

文档序号:37343053发布日期:2024-03-18 18:15阅读:11来源:国知局
一种神经网络模型处理、推理方法及相关设备与流程

本技术涉及人工智能领域,尤其涉及一种神经网络模型处理、推理方法及相关设备。


背景技术:

1、神经网络由于包括大规模并行处理,分布式存储,弹性拓扑,高度冗余和非线性运算等特点,因而具有很髙的运算速度、很强的联想能力、很强的适应性、很强的容错能力和自组织能力。这些特点和能力构成了神经网络模拟智能活动的技术基础,并在广阔的领域获得了重要的应用。例如,在通信领域,神经网络可以用于数据压缩、图像处理、矢量编码、差错控制(纠错和检错编码)、自适应信号处理、自适应均衡、信号检测、模式识别、atm流量控制、路由选择、通信网优化和智能网管理等等。

2、理论上来说,神经网络模型越深,非线性程度也就越大,模拟智能活动的能力越强。但是训练成本和模型大小也会相应增加。并且,在部署模型时,大模型需要的推理时间更长,还需要更好的硬件支持。但随着神经网络模型的广泛应用,很多场景下需要将模型部署在手机、iot设备等终端上。在这种情况下,部署环境受到能耗和设备体积的限制,端侧硬件的计算能力和存储能力相对较弱。

3、因此,如何对神经网络模型进行处理以缩短网络推理时间和降低计算消耗是目前亟待解决的问题。


技术实现思路

1、本技术提供了一种神经网络模型处理、推理方法及相关设备。根据该神经网络模型处理方法,电子设备在对原始模型进行结构化剪枝之前,可以首先对待结构化剪枝的卷积层进行若干次非结构化剪枝,直到原始模型中进行非结构化剪枝后的卷积层的稀疏度达到目标稀疏度。这样,电子设备可以再针对非结构化剪枝后的模型进行结构化剪枝。可理解,电子设备可以重复执行上述非结构化剪枝和结构化剪枝过程,直到原始模型中进行结构化剪枝后的卷积层中已修剪的卷积核数量达到预先设置的卷积核数量。通过上述方法可以对原始模型进行压缩,得到简化后的模型,使用该简化后的模型时的网络推理速度得以提升,并且由于非结构化剪枝和结构化剪枝可以分为若干次进行,避免了一次完成剪枝所造成的模型效果回退,保证了模型效果不受影响。

2、第一方面,本技术提供了一种神经网络模型处理方法。该方法可以包括:电子设备可以确定原始模型中的第一卷积层和第一卷积核数,并基于第一卷积核数,对第一卷积层进行若干次结构化剪枝。第一卷积层可以包括k个卷积层。第一卷积核数可以包括k个卷积层分别对应待修剪的卷积核数。其中,电子设备针对若干次结构化剪枝中的第n次结构化剪枝,可以包括:电子设备可以确定进行第n次结构化剪枝的m个卷积层和第二卷积核数,并对m个卷积层进行若干次非结构化剪枝,得到第二卷积层,还可以基于第二卷积核数,对第二卷积层中的卷积核进行修剪,得到第n次结构化剪枝后的模型。其中,k、n、m为正整数,m小于或等于k,m个卷积层为k个卷积层中的卷积层。第二卷积核数可以包括针对第n次结构化剪枝m个卷积层分别对应待修剪的卷积核数。第n次结构化剪枝之后,m个卷积层已修剪的卷积核数分别不大于第一卷积核数中m个卷积层对应待修剪的卷积核数。第二卷积层的稀疏度达到目标稀疏度。稀疏度为卷积层中值为0的参数数量占卷积层中所有参数数量的比例。

3、在本技术提供的方案中,电子设备可以在进行结构化剪枝之前,进行若干次非结构化剪枝。通过这种方式,电子设备可以更准确的确定重要性更小的卷积核,并去除这些卷积核,既压缩了模型,提升了使用该模型时的推理速度,又不会因去除重要性大的卷积核而太过影响模型效果。

4、在本技术的一些实施例中,电子设备可以在进行该若干次结构化剪枝中的部分结构化剪枝之前,对待结构化剪枝的卷积层进行若干次非结构化剪枝。例如,电子设备总共进行5次结构化剪枝,则电子设备可以在进行其中3次结构化剪枝之前对该3次结构化剪枝的卷积层先进行若干次非结构化剪枝。

5、在本技术的一些实施例中,电子设备可以在进行每一次结构化剪枝之前,都对待结构化剪枝的卷积层进行若干次非结构化剪枝。

6、结合第一方面,在一种可能的实现方式中,电子设备对m个卷积层进行若干次非结构化剪枝,得到第二卷积层,具体可以包括:电子设备可以确定目标稀疏度和单次稀疏度变化值,还可以基于单次稀疏度变化值,对该m个卷积层进行第i次非结构化剪枝。若第i次非结构化剪枝之后,该m个卷积层的稀疏度均达到目标稀疏度,电子设备可以得到第二卷积层。若第i次非结构化剪枝之后,该m个卷积层的稀疏度未全部达到目标稀疏度,则将i加1,电子设备可以执行上述基于单次稀疏度变化值,对该m个卷积层进行第i次非结构化剪枝的步骤。其中,单次稀疏度变化值为该m个卷积层进行一次非结构化剪枝后的稀疏度的变化值。i的初始值为1。

7、在本技术提供的方案中,电子设备可以确定目标稀疏度和单次稀疏度变化值,并基于单次稀疏度变化值来对该m个卷积层(即待进行第n次结构化剪枝的卷积层)进行非结构化剪枝,并在非结构化剪枝后该m个卷积层的稀疏度未全部达到目标稀疏度的情况下,进行下一次非结构化剪枝,以及在非结构化剪枝后该m个卷积层的稀疏度全部达到目标稀疏度的情况下,得到非结构化剪枝后的m个卷积层(即第二卷积层),然后再对第二卷积层进行结构化剪枝。通过这种方法,电子设备可以控制单次非结构化剪枝的力度,进行若干次非结构化剪枝,从而避免因单次非结构化剪枝力度过大而导致剪枝后的模型效果回退。

8、可理解,在第i次非结构化剪枝之后,该m个卷积层的稀疏度均达到目标稀疏度的情况下,第二卷积层可以包括该进行第i次非结构化剪枝之后且稀疏度均达到目标稀疏度的m个卷积层。可理解,经过非结构化剪枝之后,该m个卷积层包括的参数的值发生了变化。

9、在本技术的一些实施例中,在进行结构化剪枝前的非结构化剪枝过程中,该m个卷积层的目标稀疏度可以为相同值,该m个卷积层的单次稀疏度变化值也可以为相同值。例如,该m个卷积层的目标稀疏度可以为30%,该m个卷积层的单次稀疏度变化值可以为5%。该m个卷积层的稀疏度未全部达到目标稀疏度指的是该m个卷积层中存在一个或多个稀疏度未达到目标稀疏度的卷积层。例如,该m个卷积层的目标稀疏度可以为30%,该m个卷积层中存在一个稀疏度未达到30%的卷积层。

10、可理解,单次稀疏度变化值可以根据实际需求进行设置,本技术对此不作限制。

11、在本技术的一些实施例中,该m个卷积层进行每一次非结构化剪枝的单次稀疏度变化值是相同的。例如,该m个卷积层进行每一次非结构化剪枝的单次稀疏度变化值都是5%。

12、在本技术的一些实施例中,该m个卷积层进行若干次非结构化剪枝的单次稀疏度变化值不一定相同。例如,该m个卷积层总共进行4次非结构化剪枝。这4次非结构化剪枝分别对应的单次稀疏度变化值为8%、6%、4%和2%。具体地,该m个卷积层进行第1次非结构化剪枝的单次稀疏度变化值为8%,该m个卷积层进行第2次非结构化剪枝的单次稀疏度变化值为6%,该m个卷积层进行第3次非结构化剪枝的单次稀疏度变化值为4%,该m个卷积层进行第4次非结构化剪枝的单次稀疏度变化值为2%。

13、可理解,单次稀疏度变化值可以包括ki。在本技术的一些实施例中,i为不同值时,ki均相同的情况下,单次稀疏度变化值与ki的含义相同。

14、结合第一方面,在一种可能的实现方式中,电子设备对m个卷积层进行第i次非结构化剪枝之后,该方法还可以包括:电子设备可以对第i次非结构化剪枝后的模型进行训练。在该m个卷积层的稀疏度均达到目标稀疏度的情况下,电子设备得到的第二卷积层包括该训练后的模型中的该m个卷积层。在该m个卷积层的稀疏度未全部达到目标稀疏度的情况下,将i加1后进行的第i次非结构化剪枝的m个卷积层为该训练后的模型中的该m个卷积层。其中,对第i次非结构化剪枝后的模型进行训练的过程中,第i次非结构化剪枝后的模型中已置零的参数的值保持不变。

15、可理解,该训练后的模型中的该m个卷积层指的是对第i次非结构化剪枝后的模型进行训练之后所得的模型中的该m个卷积层。例如,该m个卷积层包括原始模型中的卷积层1、卷积层2和卷积层3。电子设备对卷积层1、卷积层2和卷积层3进行第i次非结构化剪枝,并对第i次非结构化剪枝后的模型进行训练。若第i次非结构化剪枝后的模型中的卷积层1、卷积层2和卷积层3的稀疏度均达到目标稀疏度,第二卷积层包括对第i次非结构化剪枝后的模型进行训练后得到的模型中的卷积层1、卷积层2和卷积层3。

16、在本技术提供的方案中,电子设备可以对非结构化剪枝后的模型进行训练,这样可以保证模型效果不因剪枝而回退。

17、结合第一方面,在一种可能的实现方式中,电子设备对第i次非结构化剪枝后的模型进行训练,具体可以包括:在训练轮次达到第一目标轮次,且损失值小于第一预设损失值的情况下,电子设备可以得到对第i次非结构化剪枝后的模型进行训练后的模型。

18、可理解,第一目标轮次和第一预设损失值的相关描述可以参考后文,在此不展开说明。

19、在本技术提供的方案中,电子设备可以在训练轮次和损失值达到一定条件的情况下,停止对模型的训练。通过这种方式,可以在剪枝后模型得以压缩的前提下,保证模型效果。

20、结合第一方面,在一种可能的实现方式中,电子设备基于单次稀疏度变化值,对该m个卷积层进行第i次非结构化剪枝,具体可以包括:电子设备可以分别将该m个卷积层包括的参数总数乘以单次稀疏度变化值,得到第一待置零参数数量。第一待置零参数数量可以包括该m个卷积层针对第i次非结构化剪枝所对应的待置零参数的数量。第一待置零参数数量包括zr。zr为该m个卷积层中第r个卷积层针对第i次非结构化剪枝所对应的待置零参数的数量。r为不大于所述m的正整数。电子设备基于单次稀疏度变化值,对该m个卷积层进行第i次非结构化剪枝,具体还可以包括:电子设备可以对该m个卷积层中第r个卷积层的zr个参数进行置零处理,得到第i次非结构化剪枝后的模型。其中,zr个参数为第r个卷积层中排序前zr个的参数。这里所提及的排序指的是第r个卷积层的参数按绝对值由小到大的顺序进行的排序。

21、在本技术提供的方案中,在对卷积层进行非结构化剪枝的过程中,卷积层中绝对值小的参数可以评估为是对该卷积层影响较小的参数。也就是说,绝对值越小的参数,其对模型的影响越小,这也就意味着,更改该参数的值对模型的影响较小。针对第i次非结构化剪枝,电子设备可以优先对绝对值小的参数进行置零处理,这样可以尽量减少非结构化剪枝对模型的影响,一定程度上保证了模型效果。

22、结合第一方面,在一种可能的实现方式中,第二卷积层包括进行若干次非结构化剪枝后的m个卷积层。第二卷积核数包括ur。ur为针对第n次结构化剪枝m个卷积层中第r个卷积层对应待修剪的卷积核数。r为不大于m的正整数。电子设备基于第二卷积核数,对第二卷积层中的卷积核进行修剪,具体可以包括:电子设备可以去除第二卷积层包括的m个卷积层中第r个卷积层的ur个卷积核。ur个卷积核为该第r个卷积层中排序前ur个的卷积核。这里所提及的排序指的是第r个卷积层的卷积核按参数绝对值总和由小到大的顺序进行的排序。

23、在本技术的一些实施例中,在对卷积层进行结构化剪枝的过程中,卷积层中参数绝对值总和小的卷积核可以评估为是对该卷积层影响较小的卷积核。也就是说,参数绝对值总和越小的卷积核,其对模型的影响越小,这也就意味着,去除该卷积核对模型的影响较小。针对第n次结构化剪枝,电子设备可以优先去除参数绝对值总和小的卷积核,这样可以尽量减少结构化剪枝对模型的影响,一定程度上保证了模型效果。

24、结合第一方面,在一种可能的实现方式中,电子设备确定第一卷积核数,具体可以包括:在硬件平台的通道对齐方式为w通道对齐的情况下,电子设备可以确定原始模型中k个卷积层分别包括的卷积核数与第一卷积核数包括的k个卷积层分别对应待修剪的卷积核数的差值均为w的倍数。其中,w为正整数。

25、在本技术提供的方案中,电子设备可以基于硬件平台的属性(例如,通道对齐方式)来确定第一卷积核。这种方式可以显著提升性能收益。也就是说,通过这种方式确定第一卷积核且基于第一卷积核进行结构化剪枝后,模型的推理速度可以显著提升。

26、可理解,原始模型中卷积层y包括的卷积核数与第一卷积核数包括的卷积层y对应待修剪的卷积核数的差值为w的倍数。其中,卷积层y为原始模型包括的k个卷积层中的任意一个卷积层。

27、在本技术的一些实施例中,原始模型包括的k个卷积层的卷积核数均为w的倍数,则第一卷积核数包括的k个卷积层分别对应待修剪的卷积核数均为w的倍数。

28、可理解,硬件平台的通道对齐方式和w的相关描述可以参考后文,在此不展开说明。

29、结合第一方面,在一种可能的实现方式中,电子设备得到第n次结构化剪枝后的模型之后,该方法还可以包括:若第n次结构化剪枝之后,第一卷积层包括的k个卷积层已修剪的卷积核数分别等于第一卷积核数中该k个卷积层对应待修剪的卷积核数,电子设备可以得到若干次结构化剪枝后的模型。若第n次结构化剪枝之后,第一卷积层包括的k个卷积层已修剪的卷积核数未分别等于第一卷积核数中该k个卷积层对应待修剪的卷积核数,则将n加1,执行第n次结构化剪枝的步骤。

30、可理解,上述电子设备得到的若干次结构化剪枝后的模型即为第n次结构化剪枝后的模型。上述第n次结构化剪枝的步骤可以包括:确定进行第n次结构化剪枝的m个卷积层和第二卷积核数;对m个卷积层进行若干次非结构化剪枝,得到第二卷积层;基于第二卷积核数,对第二卷积层中的卷积核进行修剪,得到第n次结构化剪枝后的模型。

31、在本技术提供的方案中,电子设备可以控制单次结构化剪枝的力度,对原始模型进行若干次结构化剪枝,避免因一次结构化剪枝力度过大(即去除的卷积核数量太多)导致模型效果受到较大影响。

32、结合第一方面,在一种可能的实现方式中,电子设备得到第n次结构化剪枝后的模型之后,该方法还可以包括:电子设备可以对第n次结构化剪枝后的模型进行训练。在第一卷积层包括的k个卷积层已修剪的卷积核数分别等于第一卷积核数中该k个卷积层对应待修剪的卷积核数的情况下,电子设备得到的第n次结构化剪枝后的最终模型包括对第n次结构化剪枝后的模型进行训练后所得的模型中的该m个卷积层。在第一卷积层包括的k个卷积层已修剪的卷积核数未分别等于第一卷积核数中该k个卷积层对应待修剪的卷积核数的情况下,电子设备将n加1后进行的第n次结构化剪枝的m个卷积层为对第n次结构化剪枝后的模型进行训练后所得的模型中的该m个卷积层。

33、在本技术提供的方案中,电子设备可以对结构化剪枝后的模型进行训练,从而降低结构化剪枝对模型效果造成的影响。

34、在本技术的一些实施例中,电子设备进行每一次结构化剪枝之后,都可以对结构化剪枝后的模型进行训练。

35、在本技术的一些实施例中,电子设备进行若干次结构化剪枝中部分次数的结构化剪枝之后,可以对该部分次数的结构化剪枝后的模型进行训练。

36、结合第一方面,在一种可能的实现方式中,电子设备对第一卷积层进行若干次结构化剪枝之后,该方法还可以包括:电子设备可以确定进行若干次结构化剪枝后的模型中的x个卷积层、该x个卷积层分别对应的稀疏度阈值,以及该x个卷积层分别对应的单次稀疏度变化值,并基于该x个卷积层分别对应的单次稀疏度变化值,对该x个卷积层进行非结构化剪枝。若对该x个卷积层进行非结构化剪枝之后,该x个卷积层的稀疏度未达到该x个卷积层分别对应的稀疏度阈值,对该x个卷积层再次进行非结构化剪枝,直到该x个卷积层的稀疏度达到该x个卷积层分别对应的稀疏度阈值。其中,x为正整数。

37、在本技术提供的方案中,在硬件平台支持稀疏计算的情况下,电子设备在进行结构化剪枝之后,还可以按照上述方式进行层维度的非结构化剪枝,从而进一步提升模型的推理速度。

38、可理解,x个卷积层和稀疏度阈值的相关描述可以参考后文,在此不展开说明。

39、结合第一方面,在一种可能的实现方式中,电子设备对x个卷积层进行非结构化剪枝之后,该方法还可以包括:电子设备可以训练对x个卷积层进行非结构化剪枝后的模型,并且在训练轮次达到第二目标轮次,且损失值小于第二预设损失值的情况下,得到训练后的模型。其中,在电子设备对x个卷积层进行非结构化剪枝后的模型进行训练的过程中,电子设备可以添加原始模型进行知识蒸馏。

40、在本技术提供的方案中,电子设备可以对进行层维度的非结构化剪枝后的模型进行训练,从而减少该非结构化剪枝对模型效果的影响。

41、可理解,对层维度的非结构化剪枝后的模型进行训练的过程可以参考后文,在此不展开说明。

42、第二方面,本技术提供了一种神经网络模型推理方法。该方法可以包括:电子设备可以将待处理数据输入到神经网络模型,并输出经过神经网络模型处理后的数据。其中,该神经网络模型为经过如上述第一方面中任一实现方式的神经网络模型处理方法处理得到的神经网络模型。

43、在本技术提供的方案中,电子设备可以利用经上述神经网络模型处理方法处理后的模型来处理数据,从而大大提升了数据处理的速度。

44、结合第二方面,在一种可能的实现方式中,电子设备将待处理数据输入到神经网络模型之前,该方法还可以包括:电子设备可以显示拍摄界面,拍摄界面可以包括快门控件;检测并响应于作用在快门控件上的操作,电子设备可以得到通过摄像头采集并处理的原始图像数据。电子设备将待处理数据输入到神经网络模型,并输出经过所述神经网络模型处理后的数据,具体可以包括:电子设备可以将原始图像数据输入到神经网络模型中,并输出经过神经网络模型处理后的图像。

45、在本技术提供的方案中,上述神经网络模型处理方法可以应用到拍照模型(例如,夜景模式下的拍照模型)中,使用经过经上述神经网络模型处理方法处理后的拍照模型进行拍照时,由于模型推理速度大大提升,用户得到图像的时间也缩短了,提升了用户体验。

46、第三方面,本技术提供了一种电子设备,该电子设备包括存储器和一个或多个处理器;其中,存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。

47、第四方面,本技术提供一种计算机存储介质,包括计算机指令,当该计算机指令在电子设备上运行时,使得该电子设备执行上述第一方面中任一种可能的实现方式。

48、第五方面,本技术实施例提供一种芯片,该芯片可以应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行上述第一方面中任一种可能的实现方式。

49、第六方面,本技术实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行上述第一方面任一种可能的实现方式。

50、第七方面,本技术提供了一种电子设备,该电子设备包括摄像头、存储器和一个或多个处理器;其中,存储器与一个或多个处理器耦合,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行如第二方面以及第二方面中任一可能的实现方式描述的方法。

51、第八方面,本技术提供一种计算机存储介质,包括计算机指令,当该计算机指令在电子设备上运行时,使得该电子设备执行上述第二方面中任一种可能的实现方式。

52、第九方面,本技术实施例提供一种芯片,该芯片可以应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行上述第二方面中任一种可能的实现方式。

53、第十方面,本技术实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行上述第二方面任一种可能的实现方式。

54、可理解,上述第三方面提供的电子设备、第四方面提供的计算机存储介质、第五方面提供的芯片,以及第六方面提供的计算机程序产品均用于执行上述第一方面中任一种可能的实现方式。因此,其所能达到的有益效果可参考上述第一方面中任一种可能的实现方式的有益效果,此处不再赘述。类似的,上述第七方面提供的电子设备、第八方面提供的计算机存储介质、第九方面提供的芯片,以及第十方面提供的计算机程序产品均用于执行上述第二方面中任一种可能的实现方式。因此,其所能达到的有益效果可参考上述第二方面中任一种可能的实现方式的有益效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1