神经网络模型的优化方法、数据处理方法及装置与流程

文档序号:26839227发布日期:2021-10-08 20:27阅读:263来源:国知局
神经网络模型的优化方法、数据处理方法及装置与流程

1.本公开涉及图像处理技术领域,具体而言,涉及一种神经网络模型的优化方法、数据处理方法及装置。


背景技术:

2.随着神经网络在各个领域的广泛应用,推动了一系列智能产品的落地,如图像识别,图像修复,语音识别等;而随着神经网络的不断发展,用于神经网络中的算法越来越多样,神经网络的结构也越来越复杂,神经网络存在优化效率低、成本高的问题。


技术实现要素:

3.本公开实施例至少提供一种神经网络模型的优化方法、数据处理方法及装置。
4.第一方面,本公开实施例提供了一种神经网络模型的优化方法,所述神经网络模型包括多个算子,所述方法包括:从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法;根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,确定所述每个算子对应的搜索路径;其中,所述多种候选数据格式包括所述至少一种数据格式;基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型。
5.这样,通过为多种候选数据格式中的每种候选数据格式选取目标算法,并根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,来确定各个算子对应的搜索路径,然后基于多个算子中每个算子对应的搜索路径进行搜索,得到神经网络模型,从而通过为每种数据格式来确定目标算法缩小搜索空间,然后在搜索空间内进行搜索,以达到对神经网络模型进行更高效、更低成本的优化的目的。
6.所述从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法,包括:确定每种候选数据格式对应的至少一种候选算法在基于所述每种候选数据格式的数据执行计算任务时的第一耗时;根据所述每种候选数据格式对应的至少一种候选算法中每种候选算法的第一耗时,从所述每种候选数据格式对应的至少一种候选算法,选取与所述每种候选数据格式对应的目标算法。
7.这样,通过候选算法在基于候选数据格式的数据执行计算任务时的第一耗时,为每一种候选数据格式确定对应的目标算法,从而基于每种候选数据格式、以及每种候选数据格式对应的目标算法来构成搜索路径,以缩小每个算子对应的搜索空间,达到提高神经网络模型的优化效率的目的。
8.一种可选实施方式中,还包括:针对所述多种候选数据格式中每种候选数据格式,从所述多种候选格式中选取所述每种候选数据格式对应的目标转换数据格式;所述根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,确定所述每个算子对应的搜索路径,包括:根据所述每个算子支持的至少一种数据格式中每种数据格式对应的目标算法、以及所述每种数据格式对应的目标转换数据格式,确定所述每个算子对应的搜索路径。
9.这样,通过为多种候选数据格式中的每种候选数据格式选取目标算法和目标转换数据格式,并根据多个算子中每个算子支持的至少一种数据格式对应的目标算法和目标转换数据格式,来确定各个算子对应的搜索路径,在上述实施方式的基础上,能够进一步的缩小搜索空间,达到进一步提高神经网络模型的优化效率的目的。
10.一种可选实施方式中,所述从所述多种候选格式中选取所述每种候选数据格式对应的目标转换数据格式,包括:针对所述多种候选数据格式中的第一候选数据格式,确定除所述第一候选数据格式外的至少一个第二候选数据格式转换为所述第一数据格式的第二耗时;基于所述第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式。
11.这样,针对每种第一候选数据格式,根据各第二候选数据格式转换为第一候选数据格式的第二耗时,将候选数据格式之间转换需要耗时更少的路径筛选出来,从而进一步减小各个算子的搜索空间,以达到进一步提高神经网络模型的优化效率的目的。
12.一种可选实施方式中,所述基于所述第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式,包括:基于所述第一候选数据格式对应的目标算法的第一耗时和所述至少一个第二候选数据格式中每个第二候选数据格式的第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式。
13.这样,针对每种第一候选数据格式,根据该第一候选数据格式对应的第一耗时和各第二候选数据格式对应的第二耗时,为每种第一候选数据格式确定目标转换数据格式,使得缩小后的搜索空间中尽量多的保留性能较好的搜索路径,从而在基于多个算子中每个算子对应的搜索路径进行搜索,得到的优化后的神经网络模型性能更好。
14.一种可选实施方式中,所述基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型,包括:将所述神经网络模型分成多个子网络模型,其中,每个子网络模型中包括所述神经网络模型中的至少一个算子;基于每个子网络模型包括的至少一个算子中每个算子对应的搜索路径进行搜索,得到所述每个子网络模型;基于所述多个子网络模型中的每个子网络模型,得到优化后的所述神经网络模型。
15.这样,将神经网络模型分成多个子网络模型,能够实现将搜索任务划分成多个子任务;不同的子任务可以通过不同的运算单元并行实现,进而能过进一步的提升搜索过程,以提高优化的效率。
16.一种可选实施方式中,所述将所述神经网络模型分成多个子网络模型,包括:基于网络深度阈值条件和数据格式条件中的至少一种,将所述神经网络模型分成多个子网络模型。
17.一种可选实施方式中,所述网络深度阈值条件包括:当前子网络模型的网络深度达到预设深度阈值;和/或所述数据格式条件包括:当前算子的下一算子支持的数据格式的数量为1。
18.这样,得到划分更加合理的子网络模型,使得针对每一子网络模型进行搜索时,也能够得到性能更加优越的子网络模型,进而提升最终所形成的神经网络模型的性能。
19.一种可选实施方式中,所述基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型,包括:针对多个算子中每个算子对应的搜索路径,基
于与所述搜索路径对应的目标算法,确定与所述搜索路径对应的第三耗时;基于多个算子中每个算子对应的搜索路径的第三耗时,确定目标路径;基于所述目标路径,得到优化后的所述神经网络模型。
20.这样,通过每条搜索路径的第三耗时,来确定目标路径,并基于目标路径得到优化后的神经网络模型,进而实现了对神经网络模型的优化。
21.第二方面,本公开实施例提供了一种数据处理方法,包括:获取待处理数据;利用目标神经网络模型对所述待处理数据执行数据处理任务,得到所述待处理数据的数据处理结果;其中所述目标神经网络模型基于第一方面、或第一方面任一种可能的实施方式所述的神经网络模型的优化方法得到。
22.这样,该数据处理方法使用了基于本公开任一实施例提供的神经网络模型的优化方法得到的神经网络模型来对待处理数据进行处理,由于所得到的神经网络模型具有更好的性能,因此所得到的数据处理结果具有更高的准确度。
23.第三方面,本公开实施例提供了一种神经网络模型的优化装置,所述神经网络模型包括多个算子,所述装置包括:选取模块,用于从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法;确定模块,用于根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,确定所述每个算子对应的搜索路径;其中,所述多种候选数据格式包括所述至少一种数据格式;搜索模块,用于基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型。
24.第四方面,本公开实施例提供了一种数据处理装置,包括:获取模块,用于获取待处理数据;处理模块,用于利用目标神经网络模型对所述待处理数据执行数据处理任务,得到所述待处理数据的数据处理结果;其中所述目标神经网络模型基于第一方面、或第一方面任一种可能的实施方式所述的神经网络模型的优化方法得到。
25.第五方面,本公开可选实现方式还提供一种电子设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面任一种可能的实施方式中的步骤,或执行第二方面实施方式中的步骤。
26.第六方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面、或第一方面任一种可能的实施方式中的步骤,或执行第二方面实施方式中的步骤。
27.第七方面,本公开可选实现方式还提供一种计算机程序产品,该计算机程序产品包括计算机可读指令,该计算机可读指令被计算机运行时执行上述第一方面、或第一方面任一种可能的实施方式中的步骤,或执行第二方面可能的实施方式中的步骤。
28.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
29.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附
图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
30.图1示出了本公开实施例所提供的一种神经网络模型的优化方法的流程图;
31.图2示出了本公开实施例所提供的选取每种候选数据格式对应的目标算法的具体方法的流程图;
32.图3示出了本公开实施例所提供的不为每种候选数据格式确定目标算法和为每种候选数据格式确定目标算法的情况下,算子分别对应的搜索路径的示例;
33.图4示出了本公开实施例所提供的基于多个算子中每个算子对应的搜索路径进行搜索,得到神经网络模型的具体方法的流程图;
34.图5示出了本公开实施例所提供将神经网络模型划分为多个子网络模型的具体方法的流程图;
35.图6示出了本公开实施例所提供的另一种神经网络模型的优化方法的流程图;
36.图7示出了本公开实施例所提供的选取每种候选数据格式对应的目标转换数据格式的具体方法的流程图;
37.图8示出了本公开实施例所提供的不为每种候选数据格式确定目标算法和目标转换数据格式时,算子对应的搜索路径的示例,以及为每种候选数据格式确定目标算法和目标转换数据格式时算子对应的搜索路径的示例的示意图;
38.图9示出了本公开实施例所提供的一种数据处理方法的流程图;
39.图10示出了本公开实施例所提供的一种神经网络模型的优化装置的示意图;
40.图11示出了本公开实施例所提供的一种数据处理装置的示意图;
41.图12示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
42.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
43.神经网络可以被简化为由多个算子组成的计算图,而神经网络模型的推理优化则可以分解为两个方向:算子速度的优化以及计算图的优化。计算图优化的内容涉及算子融合、算子的算法选择等内容,目前的神经网络推理框架支持不同程度的图优化,一种自动优化计算图的方法中,由于在图优化时会实时自动优化算法,进行一次优化需要至少数小时的时间,同时不支持多种数据格式之间的选择,造成计算图优化的时间成本过大。另一种优化计算图的方法中,会将图优化的搜索空间尽可能地缩小,但不支持算法的实时自动优化,着重通过人工优化算子来加速神经网络推理,开发成本高昂。
44.基于上述研究,本公开提供了一种神经网络模型的优化方法,适用于待部署的神经网络模型的优化。其中,通过为多种候选数据格式中的每种候选数据格式选取目标算法,并根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,来确定各个算子对应的搜索路径,然后基于多个算子中每个算子对应的搜索路径进行搜索,得到神经网络模型,从而通过为每种数据格式来确定目标算法缩小搜索空间,然后在搜索空间内进行搜索,以达到对计算图进行更高效、更低成本的优化的目的。
45.针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
46.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
47.为便于对本实施例进行理解,首先对本公开实施例所公开的一种神经网络模型的优化方法进行详细介绍,本公开实施例所提供的神经网络模型的优化方法的执行主体一般为具有一定计算能力的电子设备,该电子设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(user equipment,ue)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,pda)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该神经网络模型的优化方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
48.下面对本公开实施例提供的神经网络模型的优化方法加以说明。
49.参见图1所示,为本公开实施例提供的神经网络模型的优化方法的流程图,所述方法包括步骤s101~s103,其中:
50.s101:从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法。
51.s102:根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,确定所述每个算子对应的搜索路径;其中,所述多种候选数据格式包括所述至少一种数据格式。
52.s103:基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型。
53.下面对上述s101~s103加以详细说明。
54.i:在上述s101中,数据格式是指数据保存在文件或记录中的编排格式,例如包括数值、字符、二进制数等不同格式。每种算法支持数据格式可能有一种,也可能有多种;不同的算法所支持的数据格式可能相同,可能互不相同,也可能部分相同;每种算法采用不同的数据格式执行计算任务时,所需要耗费的时间也可能有所区别。此处,算法例如包括卷积、池化、激活等;卷积例如包括:分组卷积、逐点卷积、可分离卷积、深度卷积、空洞卷积、直接卷积、基于矩阵乘的卷积、快速卷积、基于傅里叶变换的卷积等。
55.为每种候选数据格式选取的目标算法,例如为基于对应的候选格式执行计算任务时满足一定要求的算法,该要求例如为推理速度要求和/或所耗费的计算资源要求;计算资源例如为处理器资源、内存资源、硬盘资源、网络资源等中一种或者多种。
56.示例性的,以算法执行计算任务时需要满足一定的推理速度为例,参见图2所示,本公开实施例提供一种从多种候选数据格式中每种候选数据格式对应的至少一种候选算
法中,选取每种候选数据格式对应的目标算法的具体方式,包括:
57.s201:确定每种候选数据格式对应的至少一种候选算法在基于所述每种候选数据格式的数据执行计算任务时的第一耗时。
58.这里,每种候选数据格式对应的候选算法,是指能够基于候选数据格式执行计算任务的算法。针对每种候选数据格式,能够基于每种候选数据格式执行计算任务的候选算法至少有一种。为了从至少一种候选算法中,为候选数据格式确定目标算法,这里可以使用各种候选算法基于对应的候选数据格式执行实际的计算任务,并确定每种候选算法基于候选数据格式执行实际的计算任务时的第一耗时。或者,可以对各种候选算法基于对应的候选数据格式执行计算任务时所需要的第一耗时进行推理计算,进而得到理论上的第一耗时。
59.s202:根据所述每种候选数据格式对应的至少一种候选算法中每种候选算法的第一耗时,从所述每种候选数据格式对应的至少一种候选算法,选取与所述每种候选数据格式对应的目标算法。
60.这里,在某种候选数据格式对应的候选算法仅有一种的情况下,若该种候选数据格式为神经网络必要的数据格式,可以直接将其对应的候选算法确定为该种候选数据格式的目标算法;若该种候选数据格式并非神经网络必要的数据格式,且该种候选数据格式的对应的候选算法的第一耗时过久,例如大于一定的第一时长阈值,则可以将该种候选数据格式从神经网络模型所采用的候选数据格式中去除;或者,其提供了神经网络各个算子的一种可能的选择,即使该种候选数据格式对应的候选算法的第一耗时过久,也将其作为该种候选数据格式的目标算法,并作为搜索空间的一步分,执行后续的搜索过程。
61.在某种候选数据格式对应的候选算法有至少两种的情况下,例如可以各种候选算法对应的第一耗时与预设的第一时长阈值进行比对,并将第一耗时小于该第一时长阈值的候选算法,确定为该种候选数据格式的目标算法;或者,可以按照第一耗时从短到长的顺序,从该种候选数据格式对应的候选算法中,确定s种候选算法作为该种候选数据格式对应的目标算法。其中,s为大于0的正整数。
62.在另一实施例中,以算法执行计算任务时需要满足一定的计算资源要求为例,例如可以确定每种候选数据格式对应的至少一种候选算法在基于所述每种候选数据格式的数据执行计算任务时需要耗费的计算资源;然后根据每种候选数据格式对应的至少一种候选算法中每种候选算法的第一耗时,从所述每种候选数据格式对应的至少一种候选算法,选取与所述每种候选数据格式对应的目标算法。
63.具体的实现方式与上述图2对应的实施例类似,再次不再赘述。
64.在另一实施例中,以算法执行计算任务时需要满足一定的推理速度条件、及计算资源条件为例,例如可以在预设的计算资源条件下,确定每种候选数据格式对应的至少一种候选算法在基于所述每种候选数据格式的数据执行计算任务时的第一耗时;根据所述每种候选数据格式对应的至少一种候选算法中每种候选算法的第一耗时,从所述每种候选数据格式对应的至少一种候选算法,选取与所述每种候选数据格式对应的目标算法。
65.此处,例如可以在真实的硬件下确定每种候选算法的第一耗时。真实的硬件满足上述计算资源条件。或者,也可以在仿真计算资源条件下确定每种候选算法的第一耗时。
66.ii:在上述s102中,在确定了每种候选数据格式对应的目标算法后,要针对神经网
络模型中的每个算子,根据该算子支持的各种数据格式对应的目标算法,确定每个算子对应的搜索路径。
67.每个算子对应的搜索路径,形成该算子对应的搜索空间;神经网络模型中所有算子对应的搜索空间,形成该神经网络模型对应的总的搜索空间。
68.示例性的,假如神经网络模型的任一算子所支持的候选数据格式有m种,每种候选数据格式所支持的候选算法有n(n不为1)种,则在不基于本公开实施例提供的优化方法对搜索空间进行优化的时候,所形成每个算子的原有搜索空间中,应当包括m
×
n条搜索路径;如图3中a所示,提供一种不对搜索空间进行优化时,每一算子所对应搜索路径的示例。
69.若神经网络模型中的算子有d个,则该神经网络模型对应的总的搜索空间中的总搜索路径包括:(m
×
n)
d
个。可以看到,随着神经网络模型中算子数量的增加,总的搜索空间中的总搜索路径的数量是成指数增长的。
70.基于本公开实施例提供的优化方法对各个算子的搜索空间进行优化后;若针对神经网络模型中的任一算子,若该算子支持的候选数据格式包括m种,为每种候选数据格式对应的目标算法分别有s种,则针对任一算子,根据该算子对应的目标算法,如图3中b所示,为该算子确定的搜索路径有m
×
s条,其中,s小于n。
71.神经网络模型所对应的总的搜索空间中的总搜索路径的数量为:(m
×
s)
d
条,可以看到减小了总的搜索空间,进而能够在基于该减小的搜索空间进行搜索时,具有更高的效率。
72.iii:在上述s103中,在确定了神经网络中的多个算子中每个算子对应的搜索路径后,也即构建了神经网络模型的搜索空间;然后基于搜索空间进行搜索,确定神经网络模型。
73.这里,基于搜索空间进行搜索,是要在搜索空间中,为每一算子确定合适的数据格式以及算法,使得由所有的算子构成的神经网络模型在执行计算任务时,性能达到最优。
74.这里,性能达到最优例如为下述至少一种:推理速度最快、消耗的计算资源最少、在一定计算资源条件下推理速度最快等。具体的,根据神经网络模型的实际需求进行确定。
75.示例性的,本公开实施例以基于推理速度最快作为表征神经网络模型的性能为例,对本公开实施例提供的另基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型的过程加以说明,该过程包括:
76.针对多个算子中每个算子对应的搜索路径,基于与所述搜索路径对应的目标算法,确定与所述搜索路径对应的第三耗时;基于多个算子中每个算子对应的搜索路径的第三耗时,确定目标路径;基于所述目标路径,得到优化后的所述神经网络模型。
77.在基于多个算子中每个算子对应的搜索路径进行搜索时,例如可以针对神经网络模型进行统一搜索,每次搜索从各个算子对应的搜索路径中确定一条当前搜索路径,将所有算子分别对应的当前搜索路径组合起来,形成一个备选神经网络,并对该备选神经网络进行性能验证。
78.例如利用该备选神经网络对图像执行处理过程,并将处理的速度确定为表征该备选神经网络性能的指标。
79.或者利用该备选神经网络对图像执行处理过程,并将处理过程中所占用的计算资源作为表征该备选神经网络性能的指标。
80.然后通过多次上述过程,将其中性能表现最好的备选神经网络,确定为搜索过程得到的神经网络模型。
81.在另一实施例中,如图4所示,本公开实施例还提供另一种基于多个算子中每个算子对应的搜索路径进行搜索,得到神经网络模型的具体方法,包括:
82.s401:将所述神经网络模型分成多个子网络模型,其中,每个子网络模型中包括所述神经网络模型中的至少一个算子。
83.这里,将神经网络模型分成多个子网络模型,能够实现将搜索任务划分成多个子任务;不同的子任务可以通过不同的运算单元并行实现,进而能过进一步的提升搜索过程,以提高优化的效率。
84.示例性的,例如可以采用下述方式将神经网络模型分成多个子网络模型:基于网络深度阈值条件和数据格式条件中的至少一种,将所述神经网络模型分成多个子网络模型。
85.这里,网络深度阈值条件例如包括:当前子网络模型的网络深度达到预设深度阈值;
86.所述数据格式条件包括:当前算子的下一算子支持的数据格式的数量为1。
87.在另一实施例中,例如还可以包括其他划分子网络模型的条件,例如包括但不限于下述任一种:
88.当前算子为神经网络模型的终点;
89.与当前算子直连的下游算子至少有两个;
90.与所述当前算子直连的下游算子,直连有至少两个上游算子。
91.示例性的,参见图5本公开实施例提供一种将神经网络模型划分为多个子网络模型的具体方法,包括:
92.s501:从计算图中未完成划分的算子中,为当前子网络模型确定一当前算子;其中,与当前算子直连的上游算子,已经划分至当前子网络模型中,或者已经划分至其他子网络模型中。
93.s502:对当前算子进行下述s5021~s5022分别对应的检测过程:
94.s5021:检测当前子网络模型的网络深度是否达到预设深度阈值;
95.s5022:检测当前算子的下一算子支持的数据格式的数量为1;
96.s5023:检测当前算子是否为神经网络模型的终点;
97.s5024:检测与当前算子直连的下游算子是否至少有两个;
98.s5025:检测与当前算子直连的下游算子,是否直连有至少两个上游算子;
99.如果s5021~s5022中任一检测结果为是,则跳转至s503;如果上述检测所有检测结果均为否,则跳转至s504。
100.示例性的,可以按照一定的顺序依次执行上述s5021~s5022;若检测过程中,s5021~s5022中任一检测过程的检测结果为是,直接跳转至s503,后续的检测过程不再执行。
101.s503:将当前算子作为当前子网络模型的终点算子,生成当前子网络模型。
102.s504:将当前算子划分至当前子网络模型中;并返回至上述s501。
103.直至完成计算图中所有算子的划分。
104.承接上述s401,在得到多个子网络模型后,还包括:
105.s402:基于每个子网络模型包括的至少一个算子中每个算子对应的搜索路径进行搜索,得到所述每个子网络模型。
106.这里,对子网络模型中的每个算子对应的搜索路径进行搜索,即仅针对每个子网络模型执行搜索过程。
107.在针对不同子网络模型分别执行搜索过程的时候,可以并行实现,也可以并行加串行相结合。
108.并行加串行相结合,例如将多个子网络模型分成多个分组,每个分组中至少有两个子网络模型;对多个分组执行并行的搜索过程,而对每个分组内的至少两个子网络模型执行串行的搜索过程。
109.具体地的具体搜索方式可以根据实际需要进行设定。
110.s403:基于所述多个子网络模型中的每个子网络模型,得到优化后的所述神经网络模型。
111.这里,由于多个子网络模型中的算子是具有先后的连接顺序的,例如可以根据该连接顺序,将多个搜索得到的子网络模型连接起来,得到神经网络模型。
112.本公开实施例通过为多种候选数据格式中的每种候选数据格式选取目标算法,并根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,来确定各个算子对应的搜索路径,然后基于多个算子中每个算子对应的搜索路径进行搜索,得到神经网络模型,从而通过为每种数据格式来确定目标算法缩小搜索空间,然后在搜索空间内进行搜索,以达到对计算图进行更高效、更低成本的优化的目的。
113.参见图6所示,本公开实施例还提供另一种神经网络模型的优化方法,包括:
114.s601:从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法;
115.s602:针对所述多种候选数据格式中每种候选数据格式,从所述多种候选格式中选取所述每种候选数据格式对应的目标转换数据格式;
116.s603:根据所述每个算子支持的至少一种数据格式中每种数据格式对应的目标算法、以及所述每种数据格式对应的目标转换数据格式,确定所述每个算子对应的搜索路径;
117.s604:基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型。
118.其中,s601的具体实现方式与上述s101类似,在此不再赘述;s604的具体实现方式与上述s103类似,这里也不再赘述。s601和s602并无执行的先后顺序。
119.下面对上述s602和s603分别加以详细说明。
120.iv:在上述s602中,在某些情况下,神经网络模型中的各个算子是支持数据格式之间的相互转换的,例如具有之间连接关系的两个算子,在先的算子输出的数据的数据格式为数据格式a,在后的算子在执行计算任务时所采用的数据格式为数据格式b,因而在后的算子从在先的算子接收相关数据执行计算任务时,首先要将数据从数据格式a转换为数据格式b,然后基于转换为数据格式b的数据执行计算任务,而数据格式之间的转换也是需要耗费一定时间以及计算资源的。
121.为每种候选数据格式确定对应的目标转换数据格式,例如为将目标数据格式转换
为候选数据格式的过程要满足一定的要求,该要求例如为转换速度要求和/或所耗费的计算资源要求。
122.示例性的,以满足转换速度要求为例,参见图7所示,本公开实施例提供一种从多种候选数据格式中选取每种候选数据格式对应的目标转换数据格式的具体方法,包括:
123.s701:针对所述多种候选数据格式中的第一候选数据格式,确定除所述第一候选数据格式外的至少一个第二候选数据格式转换为所述第一数据格式的第二耗时;
124.s702:基于所述第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式。
125.这里,第一候选数据格式包括多种候选数据格式中的至少部分候选数据格式。
126.针对每一个第一候选数据格式,多种候选数据格式中,除了该第一候选数据格式以外的其他至少部分候选数据格式,为该第一候选数据格式对应的第二候选数据格式。
127.在为每一个第一候选数据格式确定目标转换数据格式的时候,例如可以将不同第二候选数据格式的相同数据分别转换为第一候选格式的数据,并将转换的时间确定为各不同第二候选数据格式分别对应的第二耗时。
128.之后,例如可以将第二耗时小于预设的第二时长阈值的第二候选数据格式,确定为第一候选数据格式的目标候选数据格式。或者,还可以按照第二耗时从短到长的顺序,从第二候选数据格式中选择w种第二候选数据格式作为第一候选数据格式的目标候选数据格式。其中,w为大于0的正整数。
129.在另一实施例中,在为每一个第一候选数据格式确定目标转换数据格式的时候,例如还可以采用下述方式:
130.基于所述第一候选数据格式对应的目标算法的第一耗时和所述至少一个第二候选数据格式中每个第二候选数据格式的第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式。
131.这里,例如可以将第一候选数据格式对应的目标算法的第一耗时和各个第二候选数据格式中的第二耗时相加,得到耗时和值,然后将该耗时和值与预设的第三时长阈值进行比对;若耗时和值小于该第三时长阈值,则将对应的第二候选数据格式确定为第一候选数据格式的目标转换数据格式。
132.在本公开另一实施例中,例如还可以采用基于第二候选数据格式转换为第一候选数据格式时所消耗的计算资源,来从第二候选数据格式中为第一候选数据格式确定目标转换数据格式的方式。
133.另外,还可以采用将第二候选数据格式转换为第一候选数据格式时所消耗的计算资源、以及第二耗时结合的方式,来为每个候选数据格式确定目标转换数据格式,例如在预设的计算资源条件下,确定将第二候选数据格式转换为第一候选数据格式的第二耗时,然后根据该第二耗时,从各个第二候选数据格式中,为第一候选数据格式确定目标转换数据格式。
134.v:在上述s603中,在神经网络模型支持数据格式之间相互转换的情况下,假如神经网络模型的任一算子所支持的候选数据格式有m种,每种候选数据格式所支持的算法有n种,则在不基于本公开实施例提供的优化方法对搜索空间进行优化的时候,所形成的原有搜索空间如图8中a所示,每一个算子的搜索路径有m
×
n
×
(m-1)条;若神经网络模型中的算
子有d个,则该神经网络模型对应的总的搜索空间中的总的搜索路径的数量为:(m
×
n
×
(m-1))
d
条。
135.在基于本公开实施例提供的优化方法对搜索空间进行优化的时候,假如为每一种候选数据格式确定的目标转换数据格式有w种,为每一种候选数据格式确定的目标算法有s种,且w小于m,s小于n,则如图8中b所示,为每一个算子形成的搜索空间所包括的搜索路径有m
×
s
×
w条;若神经网络模型中的算子有d个,则该神经网络模型对应的总的搜索空间中的总的搜索路径包括(m
×
s
×
w)
d
条。
136.本公开实施例通过为多种候选数据格式中的每种候选数据格式选取目标算法和目标转换数据格式,并根据多个算子中每个算子支持的至少一种数据格式对应的目标算法和目标转换数据格式,来确定各个算子对应的搜索路径,然后基于多个算子中每个算子对应的搜索路径进行搜索,得到神经网络模型,从而通过为每种数据格式来确定目标算法缩小搜索空间,然后在搜索空间内进行搜索,以达到对计算图进行更高效、更低成本的优化的目的。
137.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
138.参见图9所示,本公开实施例还提供一种数据处理方法,包括:
139.s901:获取待处理数据;
140.s902:利用目标神经网络对所述待处理数据执行数据处理任务,得到所述待处理数据的数据处理结果;
141.其中所述目标神经网络模型基于本公开任一实施例所述的神经网络模型的优化方法得到。
142.示例性的:
143.(1)针对所述待处理数据包括图像数据的情况,对待处理数据的处理包括:人脸识别、物体检测、以及语义分割中至少一种。
144.此处,人脸识别例如包括:人脸关键点识别、人脸情绪识别、人脸属性(如年龄、性别等)识别,活体检测中至少一种。
145.物体检测例如包括:物体位置检测、物体类别检测中至少一种。
146.(2)针对所述待处理数据包括文字数据的情况,对待处理数据的处理包括:对话生成、以及字符预测中至少一种。
147.对话生成例如包括:智能问答、语音自助等中至少一种。
148.字符预测例如包括:检索关键字预测、字符补全预测等。
149.针对所述待处理数据包括三维点云数据的情况,对待处理数据的处理包括:障碍物检测、目标检测中至少一种。
150.本公开实施例提供的数据处理方法,使用了基于本公开任一实施例提供的神经网络模型的优化方法生成的神经网络模型来对待处理数据进行处理,由于所生成的神经网络模型具有更好的性能,因此所得到的数据处理结果具有更高的准确度。
151.基于同一发明构思,本公开实施例中还提供了与神经网络模型的优化方法对应的神经网络模型的优化装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上
述神经网络模型的优化方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
152.参照图10所示,为本公开实施例提供的一种神经网络模型的优化装置的示意图,所述装置包括:选取模块11、确定模块12和搜索模块13;其中,
153.选取模块11,用于从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法;
154.确定模块12,用于根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,确定所述每个算子对应的搜索路径;其中,所述多种候选数据格式包括所述至少一种数据格式;
155.搜索模块13,用于基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型。
156.一种可能的实施方式中,选取模块11,在从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法时,用于:
157.确定每种候选数据格式对应的至少一种候选算法在基于所述每种候选数据格式的数据执行计算任务时的第一耗时;
158.根据所述每种候选数据格式对应的至少一种候选算法中每种候选算法的第一耗时,从所述每种候选数据格式对应的至少一种候选算法,选取与所述每种候选数据格式对应的目标算法。
159.一种可能的实施方式中,选取模块11还用于:
160.针对所述多种候选数据格式中每种候选数据格式,从所述多种候选格式中选取所述每种候选数据格式对应的目标转换数据格式;
161.确定模块12,在根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,确定所述每个算子对应的搜索路径时,用于:
162.根据所述每个算子支持的至少一种数据格式中每种数据格式对应的目标算法、以及所述每种数据格式对应的目标转换数据格式,确定所述每个算子对应的搜索路径。
163.一种可能的实施方式中,选取模块11,在从所述多种候选格式中选取所述每种候选数据格式对应的目标转换数据格式时,用于:
164.针对所述多种候选数据格式中的第一候选数据格式,确定除所述第一候选数据格式外的至少一个第二候选数据格式转换为所述第一数据格式的第二耗时;
165.基于所述第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式。
166.一种可能的实施方式中,选取模块11,基于所述第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式时,用于:
167.基于所述第一候选数据格式对应的目标算法的第一耗时和所述至少一个第二候选数据格式中每个第二候选数据格式的第二耗时,从所述至少一个第二候选数据格式中选取所述第一候选数据格式对应的目标转换数据格式。
168.一种可能的实施方式中,搜索模块13,在基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型时,用于:
169.将所述神经网络模型分成多个子网络模型,其中,每个子网络模型中包括所述神
经网络模型中的至少一个算子;
170.基于每个子网络模型包括的至少一个算子中每个算子对应的搜索路径进行搜索,得到所述每个子网络模型;
171.基于所述多个子网络模型中的每个子网络模型,得到优化后的所述神经网络模型。
172.一种可能的实施方式中,搜索模块13,在将所述神经网络模型分成多个子网络模型时,用于:
173.基于网络深度阈值条件和数据格式条件中的至少一种,将所述神经网络模型分成多个子网络模型。
174.一种可能的实施方式中,所述网络深度阈值条件包括:当前子网络模型的网络深度达到预设深度阈值;和/或
175.所述数据格式条件包括:当前算子的下一算子支持的数据格式的数量为1。
176.一种可能的实施方式中,搜索模块13,在基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型时,用于:
177.针对多个算子中每个算子对应的搜索路径,基于与所述搜索路径对应的目标算法,确定与所述搜索路径对应的第三耗时;
178.基于多个算子中每个算子对应的搜索路径的第三耗时,确定目标路径;
179.基于所述目标路径,得到优化后的所述神经网络模型。
180.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
181.参照图11所示,本公开实施例还提供一种数据处理装置,包括:
182.获取模块111,用于获取待处理数据;
183.处理模块112,用于利用目标神经网络模型对所述待处理数据执行数据处理任务,得到所述待处理数据的数据处理结果;
184.其中所述目标神经网络模型基于本公开任一实施例所述的神经网络模型的优化方法得到。
185.本公开实施例还提供了一种电子设备120,如图12所示,为本公开实施例提供的电子设备120结构示意图,包括:
186.处理器121和存储器122;所述存储器122存储有所述处理器121可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行以实现下述步骤:
187.从多种候选数据格式中每种候选数据格式对应的至少一种候选算法中,选取所述每种候选数据格式对应的目标算法;
188.根据多个算子中每个算子支持的至少一种数据格式对应的目标算法,确定所述每个算子对应的搜索路径;其中,所述多种候选数据格式包括所述至少一种数据格式;
189.基于所述多个算子中每个算子对应的搜索路径进行搜索,得到优化后的所述神经网络模型。
190.或者,所述机器可读指令被所述处理器执行以实现下述步骤:
191.获取待处理数据;
192.利用目标神经网络模型对所述待处理数据执行数据处理任务,得到所述待处理数
据的数据处理结果;
193.其中所述目标神经网络模型基于本公开任一实施例提供的神经网络模型的优化方法得到。
194.上述指令的具体执行过程可以参考本公开实施例中所述的神经网络模型的优化方法、或数据处理方法的步骤,此处不再赘述。
195.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的神经网络模型的优化方法、或数据处理方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
196.本公开实施例所提供的神经网络模型的优化方法、或数据处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的神经网络模型的优化方法、或数据处理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
197.本公开实施例还提供一种计算机程序产品,该计算机程序产品包括计算机可读指令;该计算机可读指令被计算机运行时实现前述实施例的任意一种方法。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
198.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
199.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
200.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
201.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存
储程序代码的介质。
202.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1