一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据处理方法及装置、存储介质与流程

2023-04-01 18:30:38 来源:中国专利 TAG:


1.本技术涉及深度学习领域,尤其涉及一种数据处理方法及装置、存储介质。


背景技术:

2.深度学习技术在设备端部署的实际应用越来越广泛,其主要使用的卷积神经网络(convolutional neural network,cnn)模型具有庞大的参数量和计算量,需要大量的存储、输入/输出(input/output,i/o)交换以及计算资源,因此,在实际部署过程需要对神经网络模型进行优化。目前,量化是模型优化中应用最广泛的技术之一,其中,量化感知训练方法可通过在网络图结构中增加模拟量化算子,并重新训练网络参数的方式来达到量化过程中补偿量化误差的目的。
3.然而,现有的增加模拟量化算子的方法存在智能性低和准确性低的问题,会导致量化后的神经网络的数据处理速度低。


技术实现要素:

4.本技术实施例提供一种数据处理方法及装置、存储介质,能够提高增加模拟量化算子的智能性和准确性,进而提高量化后的神经网络的数据处理速度。
5.本技术的技术方案是这样实现的:
6.第一方面,本技术实施例提出一种数据处理方法,所述方法包括:
7.从目标神经网络中确定第一层;所述第一层为实现数据运算和/或数据融合的层;
8.基于数据处理装置支持的算子融合方式,从所述目标神经网络中确定出第二层;所述数据处理装置为部署所述目标神经网络的装置;
9.从所述目标神经网络中,确定出增加模拟量化算子后所述目标神经网络不满足预设性能指标阈值的第三层;
10.基于所述第一层、所述第二层和所述第三层,从所述目标神经网络中确定出目标位置,并在所述目标位置处增加模拟量化算子,得到量化后的神经网络,以基于所述量化后的目标神经网络进行数据处理。
11.第二方面,本技术实施例提出一种数据处理装置,所述装置包括:
12.确定单元,用于从目标神经网络中确定第一层;所述第一层为实现数据运算和/或数据融合的层;基于数据处理装置支持的算子融合方式,从所述目标神经网络中确定出第二层;所述数据处理装置为部署所述目标神经网络的装置;从所述目标神经网络中,确定出增加模拟量化算子后所述目标神经网络不满足预设性能指标阈值的第三层;基于所述第一层、所述第二层和所述第三层,从所述目标神经网络中确定出目标位置;
13.增加单元,用于在所述目标位置处增加模拟量化算子,得到量化后的神经网络,以基于所述量化后的目标神经网络进行数据处理。
14.第三方面,本技术实施例提出一种数据处理装置,所述装置包括:处理器、存储器及通信总线;所述处理器执行存储器存储的运行程序时实现如上述的方法。
15.第四方面,本技术实施例提出一种存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述的方法。
16.本技术实施例提供了一种数据处理方法及装置、存储介质,该方法包括:从目标神经网络中确定第一层;第一层为实现数据运算和/或数据融合的层;基于数据处理装置支持的算子融合方式,从目标神经网络中确定出第二层;数据处理装置为部署目标神经网络的装置;从目标神经网络中,确定出增加模拟量化算子后目标神经网络不满足预设性能指标阈值的第三层;基于第一层、第二层和第三层,从目标神经网络中确定出目标位置,并在目标位置处增加模拟量化算子,得到量化后的神经网络,以基于量化后的目标神经网络进行数据处理。采用上述实现方案,能够自动化的增加模拟量化算子,且该过程考虑到了最需增加模拟量化算子的层为实现数据运算和/或数据融合的层,并在此基础上考虑到硬件支持的算子融合的影响和量化性能的调优,最终得到的目标位置是准确待增加模拟量化算子的层,由此上述方案能够提高增加模拟量化算子的智能性和准确性,进而提高量化后的神经网络的数据处理速度。
附图说明
17.图1为本技术实施例提供的一种数据处理方法的流程图;
18.图2为本技术实施例提供的一种示例性的conv层-relu层融合的浮点结构示意图一;
19.图3为本技术实施例提供的一种示例性的conv层-relu层融合的浮点结构示意图二;
20.图4为本技术实施例提供的一种示例性的conv层-relu层融合的浮点结构示意图三;
21.图5为本技术实施例提供的一种示例性的concat层的浮点结构示意图一;
22.图6为本技术实施例提供的一种示例性的concat层的浮点结构示意图二;
23.图7为本技术实施例提供的一种示例性的concat层的浮点结构示意图三;
24.图8为本技术实施例提供的一种示例性的自动增加模拟量化算子的方法流程图;
25.图9为本技术实施例提供的一种数据处理装置的结构示意图一;
26.图10为本技术实施例提供的一种数据处理装置的结构示意图二。
具体实施方式
27.应当理解,此处描述的具体实施例仅仅用以解释本技术。并不用于限定本技术。
28.本技术实施例提供一种数据处理方法,如图1所示,该方法可以包括:
29.s101、从目标神经网络中确定第一层;第一层为实现数据运算和/或数据融合的层。
30.本技术实施例提出的一种数据处理方法适用于利用神经网络对多媒体数据进行数据处理的场景中。
31.本技术实施例中,目标神经网络可以为cnn、循环神经网络(recurrent neural network,rnn)等神经网络。
32.需要说明的是,由于数据运算相关的层需要增加模拟量化算子;数据融合相关的
层也需要增加模拟量化算子,以防止两个将要融合的层的量化参数不一致;其他可能改变该层激励数值的层也需要增加模拟量化算子,以获取该层单独的量化参数;且可能改变该层激励数值的层包含在运算相关的层中。因此,需从目标神经网络中确定出用于实现数据运算和/或数据融合的第一层。
33.可选的,实现数据运算的层可以包括卷积(conv)层、add层、深度卷积(depthwiseconv)层等,实现数据融合的层可以包括拼接(concat)层等。
34.s102、基于数据处理装置支持的算子融合方式,从目标神经网络中确定出第二层;数据处理装置为部署目标神经网络的装置。
35.本技术实施例中,在增加模拟量化算子的过程中还考虑硬件实现过程中的算子融合,首先获取部署目标神经网络的硬件所支持的算子融合方式,之后,从目标神经网络中确定算子融合方式对应的至少一组待融合层,其中,每一组待融合层包括至少两个相邻的待融合层;之后将至少一组待融合层确定为第二层。
36.本技术实施例中,一组待融合层可以为conv层-relu层、conv层-批标准化(batch normalization,bn)层,conv层-bn层-relu层,线性(linear)层-relu层,bn层-relu层等,具体的可以根据目标神经网络的网络结构和硬件支持的算子融合方式决定,本技术实施例不做具体的限定。
37.可以理解的是,本方案改进了此前全部增加模拟量化算子的缺点,全部增加模拟量化算子可能会导致算子计算流程被割裂开,打破原有的i/o交互,导致i/o交互时间大幅度增加,进而会削减量化所带来的计算速度的增益。本方案自动化增加算子融合的检测,避免算子融合被割裂,确保算子计算流程保持连续,减少不必要的i/o交互,进而保持神经网络的计算速度。
38.s103、从目标神经网络中,确定出增加模拟量化算子后目标神经网络不满足预设性能指标阈值的第三层。
39.需要说明的是,在增加模拟量化算子的过程中,还考虑增加了模拟量化算子后是否对精度影响大,针对目标神经网络的精度可以预先设置一些预设性能指标,并对预设性能指标设置对应的预设性能指标阈值,以筛选出增加了模拟量化算子后对精度影响大的层。
40.本技术实施例中,预设性能指标可以包括平均精确度(mean average precision,map)、top1、top5等性能指标,具体的可以根据实际情况进行选择,本技术实施例不做具体的限定。
41.本技术实施例中,对目标神经网络中的层进行排列,得到排列后的层;之后依次对排列后的层增加模拟量化算子,得到第一神经网络;确定第一神经网络的性能指标值;将第一神经网络的性能指标值和预设性能指标阈值进行比较,在第一神经网络的性能指标值不满足预设性能指标阈值的情况下,将第一神经网络中增加模拟量化算子的层确定为第三层。进一步地,在第一神经网络的性能指标满足预设性能指标阈值的情况下,继续对排列后的层中当前层的下一层增加模拟量化算子,并基于预设性能指标阈值判断是否将下一层确定为第三层,直至遍历完排列后的层。
42.需要说明的是,可以通过经验预先设置影响性能指标的层,在对目标神经网络中的层进行排列的过程中,可以将目标神经网络中的预设层进行在前排序,并依次对剩余层
进行排列,得到排列后的层;剩余层为目标神经网络中除预设层外的层。
43.本技术实施例中,预设层为拼接(concat)层、relu层中的至少一种,具体的根据实际情况进行选择,本技术实施例不做具体的限定。
44.需要说明的是,可以在确定出第一层之后,从第一层中确定出待剔除的第二层和第三层;或者并行从目标神经网络中确定出第一层、第二层和第三层,具体的可以根据实际情况进行选择执行,本技术实施例并不对具体的确定顺序进行限定。
45.可以理解的是,本方案可以自动化或半自动化进行量化性能调优。由于在某些层增加模拟量化算子会导致量化性能恶化,该方案中增加的量化性能调优方法可以通过调整模拟量化算子是否增加模拟量化算子或者增加模拟量化算子的位置,进而提升量化性能。
46.s104、基于第一层、第二层和第三层,从目标神经网络中确定出目标位置,并在目标位置处增加模拟量化算子,得到量化后的神经网络,以基于量化后的目标神经网络进行数据处理。
47.本技术实施例中,在确定出第一层、第二层和第三层之后,基于第一层、第二层和第三层,从目标神经网络中确定出目标位置,并在目标位置处增加模拟量化算子,得到量化后的神经网络,量化后的神经网络在降低了量化性能损失的同时,减少了量化误差的累积,提高了量化的准确性,此时利用量化后的神经网络进行数据处理,能够大大的提高数据处理的速度。
48.本技术实施例中,获取第一层对应的输入位置和输出位置,并将第一层对应的输入位置和输出位置确定为第一位置。如,针对conv层而言,在conv层的输入位置和输出位置处添加模拟量化算子。
49.本技术实施例中,将第二层中每一组待融合层之间的位置确定为第二位置;第二层由至少一组待融合层组成,其中,每一组待融合层包括至少两个相邻的待融合层。
50.示例性的,硬件支持的算子融合为conv层-relu层融合,其浮点结构图如图2所示,若按照目前在整个模型中增加模拟量化算子,则需要在conv层的输入输出位置、relu层的输入输出位置和add层的输入输出位置增加模拟量化算子quant/requant,如图3所示,但是在硬件实现过程中relu层与conv层是结合起来的,不需要conv算子在该层全部计算完成后再做relu处理,这样可以节省i/o交互,此时,将conv层与relu层之间传输通道位置、即conv层向relu层的输出位置,确定为第二位置,即将conv层与relu层之间的quant/requant删除,如图4所示,如此有利于硬件推理逻辑,并且还减小了增加额外的模拟量化算子带来的误差。
51.本技术实施例中,根据预设性能指标阈值,确定第三层对应的输入位置和/或输出位置;将第三层对应的输入位置和/或输出位置确定为第三位置。
52.需要说明的是,在第三层的输入位置、或者第三层的输出位置、或者第三层的输入位置和输出位置增加模拟量化算子,然后分别判断在上述哪个位置增加模拟量化算子时,会使得神经网络的性能指标值不满足预设性能指标阈值,此时将该位置确定为第三位置。
53.示例性的,以concat层为例,其浮点结构示意图如图5所示,concat层的两个输入分支分别是两个卷积的输出,若按照目前在整个模型中增加模拟量化算子,则需要在concat层的输入输出位置均增加模拟量化算子,如图6所示,会导致性能恶化,在本技术提出的方法中,仅在concat层的输出位置增加模拟量化算子,如图7所示,能够提高神经网络
的量化性能。
54.本技术实施例中,在确定出第一位置、第二位置和第三位置后,从第一位置中删除第二位置和第三位置,得到目标位置。
55.基于上述实施例,本技术实施例提出了一种自动增加模拟量化算子的方法,如图8所示,该方法可以包括:
56.1、记录神经网络中需要添加模拟量化算子的层,记为quant_layer。
57.2、判断quant_layer中是否存在不符合硬件算子融合的需求的层;
58.3、若quant_layer中存在不符合硬件算子融合的需求的层,则将不符合算子融合的层从quant_layer移除;之后,继续执行5;
59.4、若quant_layer中不存在不符合硬件算子融合的需求的层,则执行5;
60.5、判断是否存在对精度影响大的层;
61.6、若存在对精度影响大的层,则将对精度影响大的层从quant_layer移除,之后执行5;
62.7、若不存在对精度影响大的层,则将quant_layer确定为最终需要添加模拟量化算子的层。
63.可以理解的是,本技术实施例提出的一种数据处理方法能够自动化的增加模拟量化算子,且该过程考虑到了最需增加模拟量化算子的层为实现数据运算和/或数据融合的层,并在此基础上考虑到与硬件相关的算子融合的影响和量化性能的调优,最终得到的目标位置是准确待增加模拟量化算子的层,由此上述方案能够提高增加模拟量化算子的智能性和准确性,进而提高量化后的神经网络的数据处理速度。
64.基于上述实施例,本技术实施例还提供一种数据处理装置1。如图9所示,该数据处理装置1包括:
65.确定单元10,用于从目标神经网络中确定第一层;所述第一层为实现数据运算和/或数据融合的层;基于数据处理装置支持的算子融合方式,从所述目标神经网络中确定出第二层;所述数据处理装置为部署所述目标神经网络的装置;从所述目标神经网络中,确定出增加模拟量化算子后所述目标神经网络不满足预设性能指标阈值的第三层;基于所述第一层、所述第二层和所述第三层,从所述目标神经网络中确定出目标位置;
66.增加单元11,用于在所述目标位置处增加模拟量化算子,得到量化后的神经网络,以基于所述量化后的目标神经网络进行数据处理。
67.可选的,所述装置还包括:获取单元和删除单元;
68.所述获取单元,用于获取所述第一层对应的输入位置和输出位置;
69.所述确定单元10,还用于将所述第一层对应的输入位置和输出位置确定为第一位置;将所述第二层中每一组待融合层之间的位置确定为第二位置;所述第二层由至少一组待融合层组成,其中,每一组待融合层包括至少两个相邻的待融合层;根据所述预设性能指标阈值,确定所述第三层对应的输入位置和/或输出位置;将所述第三层对应的输入位置和/或输出位置确定为第三位置;
70.所述删除单元,用于从所述第一位置中删除所述第二位置和所述第三位置,得到所述目标位置。
71.可选的,所述装置还包括:排列单元;
72.所述排列单元,用于对所述目标神经网络中的层进行排列,得到排列后的层;
73.所述增加单元11,还用于依次对所述排列后的层增加模拟量化算子,得到第一神经网络;
74.所述确定单元10,还用于确定所述第一神经网络的性能指标值;并在所述第一神经网络的性能指标值不满足所述预设性能指标阈值的情况下,将所述第一神经网络中增加模拟量化算子的层确定为所述第三层。
75.可选的,所述排列单元,还用于将所述目标神经网络中的预设层进行在前排列,并依次对剩余层进行排列,得到所述排列后的层;所述剩余层为所述目标神经网络中除所述预设层外的层。
76.可选的,所述预设层为拼接层、relu层中的至少一种。
77.可选的,所述第一层包括实现数据运算的卷积层、add层、深度卷积层,和/或实现数据融合的拼接层中的至少一层。
78.可选的,所述确定单元10,还用于从所述目标神经网络中,确定所述算子融合方式对应的至少一组待融合层,其中,每一组待融合层包括至少两个相邻的待融合层;将所述至少一组待融合层确定为所述第二层。
79.本技术实施例提供的一种数据处理装置,从目标神经网络中确定第一层;第一层为实现数据运算和/或数据融合的层;基于数据处理装置支持的算子融合方式,从目标神经网络中确定出第二层;数据处理装置为部署目标神经网络的装置;从目标神经网络中,确定出增加模拟量化算子后目标神经网络不满足预设性能指标阈值的第三层;基于第一层、第二层和第三层,从目标神经网络中确定出目标位置,并在目标位置处增加模拟量化算子,得到量化后的神经网络,以基于量化后的目标神经网络进行数据处理。由此可见,本实施例提出的数据处理装置,能够自动化的增加模拟量化算子,且该过程考虑到了最需增加模拟量化算子的层为实现数据运算和/或数据融合的层,并在此基础上考虑到算子融合不被割裂和量化性能的调优,最终得到的目标位置是准确待增加模拟量化算子的层,由此上述方案能够提高增加模拟量化算子的智能性和准确性,进而提高量化后的神经网络的数据处理速度。
80.图10为本技术实施例提供的一种数据处理装置1的组成结构示意图二,在实际应用中,基于上述实施例的同一公开构思下,如图10所示,本实施例的数据处理装置1包括:处理器12、存储器13及通信总线14。
81.在具体的实施例的过程中,上述确定单元10、增加单元11、获取单元、删除单元和排列单元可由位于数据处理装置1上的处理器12实现,上述处理器12可以为特定用途集成电路(asic,application specific integrated circuit)、数字信号处理器(dsp,digital signal processor)、数字信号处理图像处理装置(dspd,digital signal processing device)、可编程逻辑图像处理装置(pld,programmable logic device)、现场可编程门阵列(fpga,field programmable gate array)、cpu、控制器、微控制器、微处理器中的至少一种。可以理解地,对于不同的设备,用于实现上述处理器功能的电子器件还可以为其它,本实施例不作具体限定。
82.在本技术实施例中,上述通信总线14用于实现处理器12和存储器13之间的连接通信;上述处理器12执行存储器13中存储的运行程序时实现如下的数据处理方法:
83.从目标神经网络中确定第一层;所述第一层为实现数据运算和/或数据融合的层;基于数据处理装置支持的算子融合方式,从所述目标神经网络中确定出第二层;所述数据处理装置为部署所述目标神经网络的装置;从所述目标神经网络中,确定出增加模拟量化算子后所述目标神经网络不满足预设性能指标阈值的第三层;基于所述第一层、所述第二层和所述第三层,从所述目标神经网络中确定出目标位置,并在所述目标位置处增加模拟量化算子,得到量化后的神经网络,以基于所述量化后的目标神经网络进行数据处理。
84.进一步地,上述处理器12,还用于获取所述第一层对应的输入位置和输出位置,并将所述第一层对应的输入位置和输出位置确定为第一位置;将所述第二层中每一组待融合层之间的位置确定为第二位置;所述第二层由至少一组待融合层组成,其中,每一组待融合层包括至少两个相邻的待融合层;根据所述预设性能指标阈值,确定所述第三层对应的输入位置和/或输出位置;将所述第三层对应的输入位置和/或输出位置确定为第三位置;从所述第一位置中删除所述第二位置和所述第三位置,得到所述目标位置。
85.进一步地,上述处理器12,还用于对所述目标神经网络中的层进行排列,得到排列后的层;依次对所述排列后的层增加模拟量化算子,得到第一神经网络;确定所述第一神经网络的性能指标值;并在所述第一神经网络的性能指标值不满足所述预设性能指标阈值的情况下,将所述第一神经网络中增加模拟量化算子的层确定为所述第三层。
86.进一步地,上述处理器12,还用于将所述目标神经网络中的预设层进行在前排列,并依次对剩余层进行排列,得到所述排列后的层;所述剩余层为所述目标神经网络中除所述预设层外的层。
87.进一步地,所述预设层为拼接层、relu层中的至少一种。
88.进一步地,所述第一层包括实现数据运算的卷积层、add层、深度卷积层,和/或实现数据融合的拼接层中的至少一层。
89.进一步地,上述处理器12,还用于从所述目标神经网络中,确定所述算子融合方式对应的至少一组待融合层,其中,每一组待融合层包括至少两个相邻的待融合层;将所述至少一组待融合层确定为所述第二层。
90.本技术实施例提供一种存储介质,其上存储有计算机程序,上述计算机可读存储介质存储有一个或者多个程序,上述一个或者多个程序可被一个或者多个处理器执行,应用于数据处理装置中,该计算机程序实现如上述的数据处理方法。
91.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
92.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台图像显示设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本公开各个实施例所述的方法。
93.以上所述,仅为本技术的较佳实施例而已,并非用于限定本技术的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献