神经网络划分的方法、电子设备及存储介质转让专利

申请号 : CN202110853104.7

文献号 : CN115700594A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 颜健武

申请人 : 鸿富锦精密工业(深圳)有限公司鸿海精密工业股份有限公司

摘要 :

本申请提供一种神经网络划分的方法、电子设备及存储介质,所述方法包括:获取神经网络模型,其中,所述神经网络模型包括n个算子;扫描所述神经网络模型中的所有算子子组;划分所述神经网络模型为m个区域;重新扫描所述神经网络模型中的所有算子子组,识别被破坏的算子子组;分析所述被破坏的算子子组中每个算子的输入及输出,识别特定类别的算子;及调整特定类别的算子,以调整划分的区域。

权利要求 :

1.一种神经网络划分的方法,应用在电子设备中,其特征在于,所述神经网络划分的方法包括:获取神经网络模型,其中,所述神经网络模型包括n个算子;

扫描所述神经网络模型中的所有算子子组;

划分所述神经网络模型为m个区域;

重新扫描所述神经网络模型中的所有算子子组,识别被破坏的算子子组;

分析所述被破坏的算子子组中每个算子的输入及输出,识别特定类别的算子;以及调整特定类别的算子,以调整划分的区域。

2.根据权利要求1所述的神经网络划分的方法,其特征在于,所述分析所述被破坏的算子子组中每个算子的输入及输出,识别特定类别的算子包括:识别输入与输出不一致的第一类算子;以及

统计所述第一类算子输入对应的第二类算子。

3.根据权利要求2所述的神经网络划分的方法,其特征在于,所述识别输入与输出不一致的第一类算子包括:分析所述被破坏的算子子组中每个算子的输入及输出,识别输入与输出位于不同所述区域的算子,并统计这些算子为第一类算子。

4.根据权利要求3所述的神经网络划分的方法,其特征在于,所述统计所述第一类算子输入对应的第二类算子包括:分析所述第一类算子中每个算子的输入对应的算子,并统计这类算子为第二类算子。

5.根据权利要求4所述的神经网络划分的方法,其特征在于,所述调整特定类别的算子,以调整划分的区域包括:将所述第二类算子的输出调整至与所述第一类算子的输出对应的区域,以调整划分的区域。

6.根据权利要求1所述的神经网络划分的方法,其特征在于,每个所述算子包括一个或多个输入以及一个或多个输出,相邻的算子,前一算子的输出作为后一算子的输入,一个算子的输出作为一个或多个算子的输入,一个的算子的输入来自一个或多个算子的输出。

7.根据权利要求1所述的神经网络划分的方法,其特征在于,所述扫描所述神经网络模型中的所有算子子组包括:划分所述神经网络模型中的n个算子为m个区域,m为二或二以上的整数,每个所述区域中包括数量相当的所述算子。

8.根据权利要求1所述的神经网络划分的方法,其特征在于:所述重新扫描所述神经网络模型中的所有算子子组,识别被破坏的算子子组包括:重新扫描所述神经网络模型中的所有算子子组,识别位于一个以上的所述区域的算子子组为被破坏的算子子组。

9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1至权利要求8中任意一项所述的神经网络划分的方法。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1至权利要求8中任意一项所述的神经网络划分的方法。

说明书 :

神经网络划分的方法、电子设备及存储介质

技术领域

[0001] 本申请涉及电子通信技术领域,尤其涉及一种神经网络划分的方法、电子设备及存储介质。

背景技术

[0002] 在现代电子通信技术中,越来越多的设备需要对于真实世界的实时输入进行越来越复杂的处理,如工业机器人、自动驾驶无人汽车以及移动通信设备等等。这些任务大多数偏向于机器学习领域,其中大部分运算为向量运算或者矩阵运算,具有极高的并行度。在常见的神经网络算法中,可对神经网络模型划分多个区域,多个区域并行。然而,在多个区域的某些区域中可能存在同一路径被划分到两个或两个以上的区域的情况,这使得同一路径下的两个或两个以上的区域在进行数据传输或合并时可能会产生数据丢失的情况。

发明内容

[0003] 鉴于以上内容,有必要提供一种神经网络划分的方法、电子设备及计算机可读存储介质。
[0004] 本申请提供一种神经网络划分的方法,所述方法包括:
[0005] 获取神经网络模型,其中,所述神经网络模型包括n个算子;
[0006] 扫描所述神经网络模型中的所有算子子组;
[0007] 划分所述神经网络模型为m个区域;
[0008] 重新扫描所述神经网络模型中的所有算子子组,识别被破坏的算子子组;
[0009] 分析所述被破坏的算子子组中每个算子的输入及输出,识别特定类别的算子;以及
[0010] 调整特定类别的算子,以调整划分的区域。
[0011] 在一种可能的实现方式中,所述分析所述被破坏的算子子组中每个算子的输入及输出,识别特定类别的算子包括:
[0012] 识别输入与输出不一致的第一类算子;以及
[0013] 统计所述第一类算子输入对应的第二类算子。
[0014] 在一种可能的实现方式中,所述识别输入与输出不一致的第一类算子包括:
[0015] 分析所述被破坏的算子子组中每个算子的输入及输出,识别输入与输出位于不同所述区域的算子,并统计这些算子为第一类算子。
[0016] 在一种可能的实现方式中,所述统计所述第一类算子输入对应的第二类算子包括:
[0017] 分析所述第一类算子中每个算子的输入对应的算子,并统计这类算子为第二类算子。
[0018] 在一种可能的实现方式中,所述调整特定类别的算子,以调整划分的区域包括:
[0019] 将所述第二类算子的输出调整至与所述第一类算子的输出对应的区域,以调整划分的区域。
[0020] 在一种可能的实现方式中,每个所述算子包括一个或多个输入以及一个或多个输出,相邻的算子,前一算子的输出作为后一算子的输入,一个算子的输出作为一个或多个算子的输入,一个的算子的输入来自一个或多个算子的输出。
[0021] 在一种可能的实现方式中,所述扫描所述神经网络模型中的所有算子子组包括:
[0022] 划分所述神经网络模型中的n个算子为m个区域,m为二或二以上的整数,每个所述区域中包括数量相当的所述算子。
[0023] 在一种可能的实现方式中,所述重新扫描所述神经网络模型中的所有算子子组,识别被破坏的算子子组包括:
[0024] 重新扫描所述神经网络模型中的所有算子子组,识别位于一个以上的所述区域的算子子组为被破坏的算子子组。
[0025] 本申请还提供一种电子设备,所述电子设备包括处理器和存储器,所述处理器用于执行所述存储器中存储的计算机程序时实现所述的神经网络划分的方法。
[0026] 本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述的神经网络划分的方法。
[0027] 本申请公开的神经网络划分的方法、电子设备及计算机可读存储介质,能使划分的m个区域中同一路径的算子之间进行数据传输或合并得到更好的匹配,确保数据安全。

附图说明

[0028] 图1是本申请公开的一种神经网络划分的方法的较佳实施例的流程图。
[0029] 图2是本申请公开的一种示例性神经网络模型的示意图。
[0030] 图3是本申请公开的一种示例性被划分区域的神经网络模型的示意图。
[0031] 图4是本申请公开的实现神经网络划分的方法的较佳实施例的电子设备的结构示意图。
[0032] 主要元件符号说明
[0033] 神经网络模型                  100
[0034] 算子                          Op1~Op15
[0035] 第一算子子组                  110
[0036] 第二算子子组                  120
[0037] 第三算子子组                  130
[0038] 第一区域                      T1
[0039] 第二区域                      T2
[0040] 电子设备                      4
[0041] 存储器                        41
[0042] 处理器                        42
[0043] 计算机程序                    43
[0044] 如下具体实施方式将结合上述附图进一步说明本申请。

具体实施方式

[0045] 为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请进行详细描述。
[0046] 如图1所示,是本申请神经网络划分的方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
[0047] 所述神经网络划分的方法应用于一个或者多个电子设备4(请参图4)中,所述电子设备4是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
[0048] 所述电子设备4可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
[0049] 所述电子设备4还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量主机或网络服务器构成的云。
[0050] 所述电子设备4所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
[0051] 需要说明的是,所述电子设备4集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read‑Only Memory,ROM)。
[0052] 示例性的,图4所示电子设备4包括存储器41及处理器42。所述存储器41储存有计算机程序43。所述处理器41通过运行或执行存储在存储器42内的计算机程序43,以及调用存储在存储器42内的数据,使得所述处理器42实现由所述电子设备4执行的神经网络划分的方法,并控制所述存储器41及所述电子装置4的各个部分。所述处理器42可以利用各种接口和总线连接所述存储器41及所述电子装置4的各个部分。
[0053] S1、获取神经网络模型,其中,所述神经网络模型包括n个算子。
[0054] 在本实施方式中,所述神经网络模型可以为直接从网络端获取到的神经网络模型,也可以为从所述网络端获取到的神经网络模型进行优化以后的神经网络模型。对神经网络模型进行优化可以理解为对所述神经网络模型进行算子融合,网络剪枝,模型量化,网络切割等操作。
[0055] 在本实施方式中,所述神经网络模型包括n个算子,分别为Op1,Op2,……,Opn。其中,每个算子包括一个或多个输入以及一个或多个输出。相邻的算子,前一算子的输出可作为后一算子的输入。一个算子的输出可作为一个或多个算子的输入,一个的算子的输入可来自一个或多个算子的输出。
[0056] S2、扫描所述神经网络模型中的所有算子子组。
[0057] 在本实施方式中,所述神经网络模型包括多个算子子组,每个算子子组包括多个相连接的算子。在本实施方式中,可通过有向非循环图(Directed Acyclic Graph,DAG)、深度优先搜索(Depth First Search,DFS)和/或横向优先搜索(Breadth First Search,BFS)等算法扫描所述神经网络模型中的所有算子子组。
[0058] 示例性的,图2所示神经网络模型100包括15个算子,分别为Op1,Op2,……,Op15。通过扫描所述神经网络模型100,得出3个算子子组,即第一算子子组110,第二算子子组120以及第三算子子组130。
[0059] 本实施方式中,可将一个算子子组标识为Lx(f,e),其中,Lx为级数,f为所述算子子组的起始算子,e为所述算子子组的终止算子。扫描所述神经网络模型100得出所述3个算子子组分别标识为L1(Op1,Op3),L1(Op4,Op15),L2(Op12,Op14)。
[0060] S3,划分所述神经网络模型为m个区域。
[0061] 在本实施方式中,划分所述神经网络模型中的多个算子为m个区域,m为二或二以上的整数,使得每个区域中包括数量相当的所述算子。
[0062] 示例性的,图3所示划分所述神经网络模型100为2个区域,即第一区域T1和第二区域T2。其中,所述算子Op1,Op2,……,Op7位于所述第一区域T1,所述算子Op8,Op9,……,Op15位于所述第二区域T2。所述第一区域T1和所述第二区域T2包括数量相当的所述算子。
[0063] S4、重新扫描所述神经网络模型中的所有算子子组,识别被破坏的算子子组。
[0064] 在本实施方式中,重新扫描所述神经网络模型中的所有算子子组,识别是否有算子子组位于一个以上的区域。也即当一个算子子组中既有部分算子位于一个划分的所述区域,也有另外部分算子位于另一划分的所述区域。在本实施方式中,所述神经网络模型可同时被多个处理器执行。
[0065] 示例性的,图3所示所述神经网络模型100的三个算子子组中,所述第一算子子组110位于所述第一区域T1,即所述第一算子子组110中所有算子Op1,Op2,Op3均位于所述第一区域T1;所述第三算子子组130位于所述第二区域T2,即所述第三算子子组130中所有算子Op12,Op13,Op14均位于所述第二区域T2;所述第二算子子组120位于所述第一区域T1以及所述第二区域T2,即所述第二算子子组120中部分算子,例如Op4,Op5,……位于所述第一区域T1,还有部分算子,例如Op9,Op10,……位于所述第二区域T2。因此,所述第二算子子组
120被识别为被破坏的算子子组。
[0066] 在本实施方式中,所述神经网络模型100同时被两个处理器执行,其中所述第一区域T1和所述第二区域T2分别被一个处理器执行。此外,每一处理器执行对应的区域的执行时间相同,以降低等待时间,从而达到负载平衡。
[0067] S5、分析所述被破坏的算子子组中每个算子的输入及输出,识别输入与输出不一致的第一类算子。
[0068] 在本实施方式中,分析所述被破坏的算子子组中每个算子的输入及输出,识别输入与输出位于不同所述区域的算子。也即,当所述被破坏的算子子组中的一个算子的输出于一个划分的所述区域,而输入来自另一个划分的所述区域,统计这类的算子为第一类算子。
[0069] 示例性的,图3所示所述神经网络模型100的被识别为被破坏的算子子组的所述第二算子子组120中,分析每个算子Op4,Op6,……的输入及输出。具体地,算子Op4的输出于所述第一区域T1;算子Op6的输出于所述第一区域T1;算子Op7的输出于所述第一区域T1;算子Op8的输入于所述第一区域T1,输出于所述第二区域T2;算子Op9的输入于所述第一区域T1,输出于所述第二区域T2;算子Op11的输入于所述第一区域T1,输出于所述第二区域T2;算子Op15的输入于所述第一区域T1,输出于所述第二区域T2。对于其他输入与输出明显在同一区域内的算子,在此不再一一罗列。由此可得,所述算子Op8,Op9,Op11,Op15的输入的区域与输出的区域不一致。也即,所述算子Op8,Op9,Op11,Op15的输入来自另一区域。由此,统计所述算子Op8,Op9,Op11,Op15为第一类算子。
[0070] S6、统计所述第一类算子输入对应的第二类算子。
[0071] 在本实施方式中,分析所述第一类算子中每个算子的输入对应的算子,并统计这类算子为第二类算子。
[0072] 示例性的,图3所示所述第一类算子中,算子Op8的输入来自算子Op7的输出;算子Op9和Op11的输入来自算子Op4的输出;算子Op15的输入来自算子Op6的输出。由此,统计所述算子Op4,Op6,Op7为第二类算子。
[0073] S7、调整划分的区域。
[0074] 在本实施方式中,将所述第二类算子的输出调整至与所述第一类算子的输出对应的区域,以此调整划分的区域。
[0075] 示例性的,图3所示所述第二类算子Op4,Op6,Op7的输出调整至与所述第一类算子Op8,Op9,Op11,Op15的输出对应的区域,也即所述第二区域T2,以此调整划分的第一区域T1与第二区域T2。
[0076] 由此,调整后的两个区域中同一路径的算子之间进行数据传输或合并得到更好的匹配,确保数据安全。
[0077] 本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用以实现如上所述的任一种针对神经网络划分的步骤。
[0078] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置,方法和计算机可读存储介质,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0079] 所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0080] 另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
[0081] 对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
[0082] 最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。