CN112434805B - 一种深度神经网络模块分割方法 - Google Patents

一种深度神经网络模块分割方法 Download PDF

Info

Publication number
CN112434805B
CN112434805B CN202011198228.8A CN202011198228A CN112434805B CN 112434805 B CN112434805 B CN 112434805B CN 202011198228 A CN202011198228 A CN 202011198228A CN 112434805 B CN112434805 B CN 112434805B
Authority
CN
China
Prior art keywords
node
neural network
deep neural
layer
entering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011198228.8A
Other languages
English (en)
Other versions
CN112434805A (zh
Inventor
谢在鹏
张磊
朱晓瑞
叶保留
徐媛媛
屈志昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hohai University HHU
Original Assignee
Hohai University HHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hohai University HHU filed Critical Hohai University HHU
Priority to CN202011198228.8A priority Critical patent/CN112434805B/zh
Publication of CN112434805A publication Critical patent/CN112434805A/zh
Application granted granted Critical
Publication of CN112434805B publication Critical patent/CN112434805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/061Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using biological neurons, e.g. biological neurons connected to an integrated circuit

Abstract

本发明涉及一种深度神经网络模块分割方法,考虑了数据重复的问题,获得划分时最优的方法;具体将最小化问题等价于最小割问题,可以更快速的得到全局最优解;具体针对深度神经网络所建模的有向无环图,采用图的最大流/最小割算法进行划分,获得有效分割,即作为对应深度神经网络的最佳分割;如此通过有效利用
Figure 825643DEST_PATH_IMAGE001
应用的分割,能够有效的减少
Figure 561518DEST_PATH_IMAGE001
应用在智能移动设备上的计算时延;在实验结果中,随着
Figure 229260DEST_PATH_IMAGE001
模型层数以及计算量的提高,采用上述改进方案,
Figure 346076DEST_PATH_IMAGE001
在移动智能设备上的运行时间得到了显著的减少,与未考虑重复传输问题的方法进行
Figure 542702DEST_PATH_IMAGE001
划分的方式相比,该划分方式得到的
Figure 765873DEST_PATH_IMAGE001
划分为最佳划分且运行速度的到了较大的提高。

Description

一种深度神经网络模块分割方法
技术领域
本发明涉及一种深度神经网络模块分割方法,属于深度神经网络计算技术领域。
背景技术
深度神经网络(DNN)是目前应用最普遍的机器学习技术,并且越来越受欢迎,得益于其在特征提取方面的优越性能,DNN在计算机视觉和自然语言处理方面取得了巨大的成功。另一方面,随着智能移动设备的推广,机器学习技术也越来越贴近普罗大众的生活,例如,人脸识别和语音识别等。尽管移动设备的性能有所发展,但是计算能力终归有限,并且这些应用的计算量对于移动设备而言相对较大且对于计算速度也有一定的要求,这些都对DNN在智能移动设备上的应用提出了挑战。
为了应对以上挑战,有人考虑将大量计算从移动设备卸载到资源云/边缘服务器,然后通过无线网络接收结果。卸载是克服移动设备资源和功能约束的有效方法,可以将移动设备从密集处理中释放出来,将DNN应用的所有计算组件卸载到远程云或附近的边缘服务器并不总是必要或有效的。特别是对于一些复杂的应用程序,这些应用程序可以被划分为一组独立的部分,移动设备应该明智地决定是否卸载计算以及应用程序的哪一部分应该卸载到服务器。
于是基于DNN结构的DNN模型分割被提了出来。通过利用边缘计算将DNN模型在层与层之间分割为两部分。第一部分为计算需求较大的部分,将其交给边缘服务器进行运算;另一部分则交给了移动设备。以此提高边缘移动设备的计算能力。
现有技术在这方面的主要内容是动态地划分神经元工作负载,并将分区分配给神经元的组以用于并行处理,最终节省功率。该专利的划分是以神经元的工作负载,包括输入体积和所述权重体积为依据,将工作负载划分为多个分区,并将这些工作负载划分分配给由神经元组划分器划分的多个神经元组来并行处理,实际应用中,划分效率低。
而本专利的划分依据与他不同,采用的划分依据则是深度神经网络应用运行的时间需求,根据DNN应用运行时间需求,将其划分为移动设备运行部分和边缘服务器运行部分以最小化DNN运行时间。
发明内容
本发明所要解决的技术问题是提供一种深度神经网络模块分割方法,能够优化DNN模型的计算时延,有效解决目前移动设备上DNN应用计算效率低下的问题。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种深度神经网络模块分割方法,用于针对目标深度神经网络进行模块划分,分别运行于本地终端、以及运算能力高于本地终端的服务终端;所述分割方法包括如下步骤:
步骤A.以目标深度神经网络中的各层为节点,各层之间的有向数据传输为有向边,构建目标深度神经网络所对应的有向无环图G=(V,E),并获得其中各有向边的权重,且各节点分别包含其所对应层在本地终端上的运行时长、以及在服务终端上的运行时长;V表示目标深度神经网络中各层分别所对应节点的集合,E表示目标深度神经网络中各层之间有向数据传输分别所对应边的集合,然后进入步骤B;
步骤B.遍历有向无环图G中出度大于1的各个节点,添加节点所对应的虚拟节点,并定义虚拟节点包含其所对应层在本地终端上的运行时长为0、以及在服务终端上的运行时长为0,以及更新该节点经对应虚拟节点与其出度所对应各其他节点之间的各有向边和有向边的权重;由此针对有向无环图G=(V,E)更新,获得有向无环图G'=(V',E'),V'表示有向无环图G'中节点的集合,E'表示有向无环图G'中边的集合,然后进入步骤C;
步骤C.初始化网络划分后的最小运行时长T(minCut)=+∞,以及初始化网络划分次数p=1,然后进入步骤D;
步骤D.针对步骤B所获有向无环图G'=(V',E'),判断p是否小于[N*(N-1)]|/2,是则针对p的值进行加1更新,并进入步骤E;否则进入步骤T;其中,N表示集合V中的节点数;
步骤E.初始化集合A、集合t、集合s均为空集,并进入步骤F;
步骤F.随机针对集合V'中的一个节点进行标记,并复制该节点作为节点a,添加至集合A当中,然后进入步骤G;
步骤G.判断集合V'中节点的个数是否大于2,是则进入步骤H;否则将集合A中倒数第一个节点v倒1所对应的单节点或多节点添加至集合t中,并将倒数第二个节点v倒2所对应的单节点或多节点添加至集合s中,由集合(A-t)构成目标深度神经网络运行于本地终端的节点集合,集合t构成目标深度神经网络运行于服务终端的节点集合,并构成集合组合方案cut(A-t,t),然后进入步骤P;
步骤H.初始化节点最大卸载代价max=0,节点vmax=null,节点v=null,并进入步骤I;
步骤I.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,然后进入步骤J;
步骤J.判断集合A中是否存在信息与节点v信息相同的节点,是则根据如下公式:
Figure BDA0002754594330000031
获得节点v所对应的卸载代价Δ(v),其中,w(e(A,v))表示集合A中与节点v信息相同节点所连各边的权重和,tv e表示节点v在本地终端上的运行时长,tv s表示节点v在服务终端上的运行时长,然后进入步骤K;否则直接进入步骤L;
步骤K.判断Δ(v)是否大于节点最大卸载代价max,是则将Δ(v)赋给max,并将节点v赋给节点vmax,然后进入步骤L;否则直接进入步骤L;
步骤L.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤J;否则将节点vmax添加至集合A中,并清空集合V'中节点的标记,然后进入步骤M;
步骤M.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,同时初始化节点a与节点vmax组合的节点v,然后进入步骤N;
步骤N.判断节点a与节点vmax中是否存在信息与节点v信息相同的节点,是则直接进入步骤O;否则在节点v与节点v之间添加边,且定义该边的权值w(e(v,v))=w(e(a,v))+w(e(vmax,v)),以及定义节点v在本地终端上的运行时长
Figure BDA0002754594330000032
在服务终端上的运行时长
Figure BDA0002754594330000033
删除节点v与节点a之间的所有边,以及删除节点v与节点vmax之间的所有边,其中,w(e(a,v))表示节点a与节点v之间的权重,w(e(vmax,v))表示节点vmax与节点v之间的权重,然后进入步骤O;
步骤O.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤N;否则将节点v添加至集合A中,并清空集合V'中节点的标记,删除节点a与节点vmax,然后返回步骤G;
步骤P.针对集合组合方案cut(A-t,t),获得集合(A-t)中各节点在本地终端上运行时间之和、集合t中各节点在服务终端上运行时间之和、以及集合t中各节点所对应各出度边的权重之和,并获得该三者之和T(cut(A-t,t)),判断T(cut(A-t,t))是否小于T(minCut),是则将T(cut(A-t,t))赋值给T(minCut),并将集合组合方案cut(A-t,t)赋给minCut,然后进入步骤Q;否则进入步骤Q;
步骤Q.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,同时初始化节点v倒1与节点v倒2组合的节点v',然后进入步骤R;
步骤R.判断集合t与集合s中是否存在信息与节点v信息相同的节点,是则直接进入步骤S;否则节点v与节点v'之间添加边,且定义该边的权值w(e(v',v))=w(e(s,v))+w(e(t,v)),以及定义节点v'在本地终端上的运行时长
Figure BDA0002754594330000041
在服务终端上的运行时长
Figure BDA0002754594330000042
删除节点v与集合s中各节点之间的所有边,以及删除节点v与集合t中各节点之间的所有边,其中,w(e(s,v))表示集合s中与节点v相接各边的权重之和,w(e(t,v))表示集合t中与节点v相接各边的权重之和,
Figure BDA0002754594330000043
表示v倒1所对应单节点在本地终端上的运行时长、或v倒1所对应多节点在本地终端上运行时长之和,
Figure BDA0002754594330000044
表示v倒2所对应单节点在本地终端上的运行时长、或v倒2所对应多节点在本地终端上运行时长之和,
Figure BDA0002754594330000045
表示v倒1所对应单节点在服务终端上的运行时长、或v倒1所对应多节点在服务终端上运行时长之和,
Figure BDA0002754594330000046
表示v倒2所对应单节点在服务终端上的运行时长、或v倒2所对应多节点在服务终端上运行时长之和,然后进入步骤S;
步骤S.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤R;否则将节点v'添加至集合A中,并清空集合V'中节点的标记,删除集合t中各节点与集合s中各节点,然后还原有向无环图G'为步骤B所获有向无环图G',并返回步骤D;
步骤T.按minCut所对应的集合组合方案cut(A-t,t),将集合(A-t)中各节点所对应目标深度神经网络的各层划分至本地终端运行,以及将集合t所对应目标深度神经网络的各层划分至服务终端运行。
作为本发明的一种优选技术方案:所述步骤A包括如下步骤A1至步骤A4;
步骤A1.获得目标深度神经网络中各层分别所对应的输出数据信息Dn,1≤n≤N,Dn表示目标深度神经网络中第n层所对应的输出数据信息,然后进入步骤A2;
步骤A2.分别针对目标深度神经网络中的各层,获得层在本地终端上的运行时长
Figure BDA0002754594330000051
以及层在在服务终端上的运行时长
Figure BDA0002754594330000052
表示目标深度神经网络中第n层在本地终端上的运行时长,
Figure BDA0002754594330000053
表示目标深度神经网络中第n层在服务终端上的运行时长,然后进入步骤A3;
步骤A3.根据如下公式:
Figure BDA0002754594330000054
获得目标深度神经网络中各层所对应的传输时长
Figure BDA0002754594330000055
其中,B表示本地终端与服务终端之间的带宽,
Figure BDA0002754594330000056
表示目标深度神经网络中第n层所对应的传输时长;然后进入步骤A4;
步骤A4.以目标深度神经网络中的各层为节点,各层之间的有向数据传输为各层所对应节点之间的有向边,构建目标深度神经网络所对应的有向无环图G=(V,E),并且定义各层所对应的传输时长为各层指向其他层有向数据传输所对应各边的权重,且各节点分别包含其所对应层在本地终端上的运行时长
Figure BDA0002754594330000057
以及在服务终端上的运行时长
Figure BDA0002754594330000058
V表示目标深度神经网络中各层分别所对应节点的集合,E表示目标深度神经网络中各层之间有向数据传输分别所对应边的集合,然后进入步骤B。
作为本发明的一种优选技术方案:所述步骤B中,遍历有向无环图G中出度大于1的各个节点,分别执行如下步骤B1至步骤B4,针对有向无环图G=(V,E)更新,获得有向无环图G'=(V',E');
步骤B1.添加节点所对应的虚拟节点,以及添加该节点指向该虚拟节点的边,并以该节点所对应的传输时长定义该边的权重,然后进入步骤B2;
步骤B2.定义该虚拟节点在本地终端上的运行时长为0,以及定义该虚拟节点在服务终端上的运行时长为0,然后进入步骤B3;
步骤B3.添加该虚拟节点分别指向该节点出度所指向各个节点的边,并定义该各边的权重为0,然后进入步骤B4;
步骤B4.删除该节点与其出度所指向各个节点之间的边。
本发明所述一种深度神经网络模块分割方法,采用以上技术方案与现有技术相比,具有以下技术效果:
本发明所设计深度神经网络模块分割方法,基于最大流/最小割算法设计深度神经网络分割,与现有深度神经网络分割方法的不同主要体现在:第一,本方法考虑了数据重复的问题,获得划分时最优的方法;第二,本方法采用的分割方法,即将最小化问题等价于最小割问题,可以更快速的得到全局最优解;具体针对深度神经网络所建模的有向无环图,采用图的最大流/最小割算法进行划分,获得有效分割,即作为对应深度神经网络的最佳分割;如此通过有效利用DNN应用的分割,能够有效的减少DNN应用在智能移动设备上的计算时延;在实验结果中,随着DNN模型层数以及计算量的提高,采用上述改进方案,DNN在移动智能设备上的运行时间得到了显著的减少,与未考虑重复传输问题的方法进行DNN划分的方式相比,该划分方式得到的DNN划分为最佳划分且运行速度的到了较大的提高。
附图说明
图1是本发明所设计深度神经网络模块分割方法的流程示意图。
具体实施方式
下面结合说明书附图对本发明的具体实施方式作进一步详细的说明。
本发明设计了一种深度神经网络模块分割方法,用于针对目标深度神经网络进行模块划分,分别运行于本地终端、以及运算能力高于本地终端的服务终端;实际应用当中,本地终端诸如为移动智能设备,服务终端诸如为边缘服务器;所述分割方法如图1所示,具体执行如下步骤A至步骤T。
步骤A.以目标深度神经网络中的各层为节点,各层之间的有向数据传输为有向边,构建目标深度神经网络所对应的有向无环图G=(V,E),并获得其中各有向边的权重,且各节点分别包含其所对应层在本地终端上的运行时长、以及在服务终端上的运行时长;V表示目标深度神经网络中各层分别所对应节点的集合,E表示目标深度神经网络中各层之间有向数据传输分别所对应边的集合,然后进入步骤B。
上述步骤A的实际应用中,具体执行如下步骤A1至步骤A4。
步骤A1.获得目标深度神经网络中各层分别所对应的输出数据信息Dn,1≤n≤N,Dn表示目标深度神经网络中第n层所对应的输出数据信息,然后进入步骤A2。
步骤A2.分别针对目标深度神经网络中的各层,获得层在本地终端上的运行时长
Figure BDA0002754594330000071
以及层在在服务终端上的运行时长
Figure BDA0002754594330000072
表示目标深度神经网络中第n层在本地终端上的运行时长,
Figure BDA0002754594330000073
表示目标深度神经网络中第n层在服务终端上的运行时长,然后进入步骤A3。
步骤A3.根据如下公式:
Figure BDA0002754594330000074
获得目标深度神经网络中各层所对应的传输时长
Figure BDA0002754594330000075
其中,B表示本地终端与服务终端之间的带宽,
Figure BDA0002754594330000076
表示目标深度神经网络中第n层所对应的传输时长;然后进入步骤A4。
步骤A4.以目标深度神经网络中的各层为节点,各层之间的有向数据传输为各层所对应节点之间的有向边,构建目标深度神经网络所对应的有向无环图G=(V,E),并且定义各层所对应的传输时长为各层指向其他层有向数据传输所对应各边的权重,且各节点分别包含其所对应层在本地终端上的运行时长
Figure BDA0002754594330000077
以及在服务终端上的运行时长
Figure BDA0002754594330000078
V表示目标深度神经网络中各层分别所对应节点的集合,E表示目标深度神经网络中各层之间有向数据传输分别所对应边的集合,然后进入步骤B。
步骤B.遍历有向无环图G中出度大于1的各个节点,添加节点所对应的虚拟节点,并定义虚拟节点包含其所对应层在本地终端上的运行时长为0、以及在服务终端上的运行时长为0,以及更新该节点经对应虚拟节点与其出度所对应各其他节点之间的各有向边和有向边的权重;由此针对有向无环图G=(V,E)更新,获得有向无环图G'=(V',E'),V'表示有向无环图G'中节点的集合,E'表示有向无环图G'中边的集合,然后进入步骤C。
上述步骤B实际应用中,遍历有向无环图G中出度大于1的各个节点,分别具体执行如下步骤B1至步骤B4,针对有向无环图G=(V,E)更新,获得有向无环图G'=(V',E')。
步骤B1.添加节点所对应的虚拟节点,以及添加该节点指向该虚拟节点的边,并以该节点所对应的传输时长定义该边的权重,然后进入步骤B2。
步骤B2.定义该虚拟节点在本地终端上的运行时长为0,以及定义该虚拟节点在服务终端上的运行时长为0,然后进入步骤B3。
步骤B3.添加该虚拟节点分别指向该节点出度所指向各个节点的边,并定义该各边的权重为0,然后进入步骤B4。
步骤B4.删除该节点与其出度所指向各个节点之间的边。
步骤C.初始化网络划分后的最小运行时长T(minCut)=+∞,以及初始化网络划分次数p=1,然后进入步骤D。
步骤D.针对步骤B所获有向无环图G'=(V',E'),判断p是否小于[N*(N-1)]/2,是则针对p的值进行加1更新,并进入步骤E;否则进入步骤T;其中,N表示集合V中的节点数。
步骤E.初始化集合A、集合t、集合s均为空集,并进入步骤F。
步骤F.随机针对集合V'中的一个节点进行标记,并复制该节点作为节点a,添加至集合A当中,然后进入步骤G。
步骤G.判断集合V'中节点的个数是否大于2,是则进入步骤H;否则将集合A中倒数第一个节点v倒1所对应的单节点或多节点添加至集合t中,并将倒数第二个节点v倒2所对应的单节点或多节点添加至集合s中,由集合(A-t)构成目标深度神经网络运行于本地终端的节点集合,集合t构成目标深度神经网络运行于服务终端的节点集合,并构成集合组合方案cut(A-t,t),然后进入步骤P。
步骤H.初始化节点最大卸载代价max=0,节点vmax=null,节点v=null,并进入步骤I。
步骤I.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,然后进入步骤J。
步骤J.判断集合A中是否存在信息与节点v信息相同的节点,是则根据如下公式:
Figure BDA0002754594330000081
获得节点v所对应的卸载代价Δ(v),其中,w(e(A,v))表示集合A中与节点v信息相同节点所连各边的权重和,
Figure BDA0002754594330000082
表示节点v在本地终端上的运行时长,
Figure BDA0002754594330000083
表示节点v在服务终端上的运行时长,然后进入步骤K;否则直接进入步骤L。
步骤K.判断Δ(v)是否大于节点最大卸载代价max,是则将Δ(v)赋给max,并将节点v赋给节点vmax,然后进入步骤L;否则直接进入步骤L。
步骤L.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤J;否则将节点vmax添加至集合A中,并清空集合V'中节点的标记,然后进入步骤M。
步骤M.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,同时初始化节点a与节点vmax组合的节点v,然后进入步骤N。
步骤N.判断节点a与节点vmax中是否存在信息与节点v信息相同的节点,是则直接进入步骤O;否则在节点v与节点v之间添加边,且定义该边的权值w(e(v,v))=w(e(a,v))+w(e(vmax,v)),以及定义节点v在本地终端上的运行时长
Figure BDA0002754594330000091
在服务终端上的运行时长
Figure BDA0002754594330000092
删除节点v与节点a之间的所有边,以及删除节点v与节点vmax之间的所有边,其中,w(e(a,v))表示节点a与节点v之间的权重,w(e(vmax,v))表示节点vmax与节点v之间的权重,然后进入步骤O。
步骤O.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤N;否则将节点v添加至集合A中,并清空集合V'中节点的标记,删除节点a与节点vmax,然后返回步骤G。
步骤P.针对集合组合方案cut(A-t,t),获得集合(A-t)中各节点在本地终端上运行时间之和、集合t中各节点在服务终端上运行时间之和、以及集合t中各节点所对应各出度边的权重之和,并获得该三者之和T(cut(A-t,t)),判断T(cut(A-t,t))是否小于T(minCut),是则将T(cut(A-t,t))赋值给T(minCut),并将集合组合方案cut(A-t,t)赋给minCut,然后进入步骤Q;否则进入步骤Q。
步骤Q.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,同时初始化节点v倒1与节点v倒2组合的节点v',然后进入步骤R。
步骤R.判断集合t与集合s中是否存在信息与节点v信息相同的节点,是则直接进入步骤S;否则节点v与节点v'之间添加边,且定义该边的权值w(e(v',v))=w(e(s,v))+w(e(t,v)),以及定义节点v'在本地终端上的运行时长
Figure BDA0002754594330000101
在服务终端上的运行时长
Figure BDA0002754594330000102
删除节点v与集合s中各节点之间的所有边,以及删除节点v与集合t中各节点之间的所有边,其中,w(e(s,v))表示集合s中与节点v相接各边的权重之和,w(e(t,v))表示集合t中与节点v相接各边的权重之和,
Figure BDA0002754594330000103
表示v倒1所对应单节点在本地终端上的运行时长、或v倒1所对应多节点在本地终端上运行时长之和,
Figure BDA0002754594330000104
表示v倒2所对应单节点在本地终端上的运行时长、或v倒2所对应多节点在本地终端上运行时长之和,
Figure BDA0002754594330000105
表示v倒1所对应单节点在服务终端上的运行时长、或v倒1所对应多节点在服务终端上运行时长之和,
Figure BDA0002754594330000106
表示v倒2所对应单节点在服务终端上的运行时长、或v倒2所对应多节点在服务终端上运行时长之和,然后进入步骤S。
步骤S.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤R;否则将节点v'添加至集合A中,并清空集合V'中节点的标记,删除集合t中各节点与集合s中各节点,然后还原有向无环图G'为步骤B所获有向无环图G',并返回步骤D。
步骤T.按minCut所对应的集合组合方案cut(A-t,t),将集合(A-t)中各节点所对应目标深度神经网络的各层划分至本地终端运行,以及将集合t所对应目标深度神经网络的各层划分至服务终端运行。
上述技术方案所设计深度神经网络模块分割方法,基于最大流/最小割算法设计深度神经网络分割,与现有深度神经网络分割方法的不同主要体现在:第一,本方法考虑了数据重复的问题,获得划分时最优的方法;第二,本方法采用的分割方法,即将最小化问题等价于最小割问题,可以更快速的得到全局最优解;具体针对深度神经网络所建模的有向无环图,采用图的最大流/最小割算法进行划分,获得有效分割,即作为对应深度神经网络的最佳分割;如此通过有效利用DNN应用的分割,能够有效的减少DNN应用在智能移动设备上的计算时延;在实验结果中,随着DNN模型层数以及计算量的提高,采用上述改进方案,DNN在移动智能设备上的运行时间得到了显著的减少,与未考虑重复传输问题的方法进行DNN划分的方式相比,该划分方式得到的DNN划分为最佳划分且运行速度的到了较大的提高。
上面结合附图对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。

Claims (1)

1.一种深度神经网络模块分割方法,其特征在于:用于针对目标深度神经网络进行模块划分,分别运行于本地终端、以及运算能力高于本地终端的服务终端;所述分割方法包括如下步骤:
步骤A.以目标深度神经网络中的各层为节点,各层之间的有向数据传输为有向边,构建目标深度神经网络所对应的有向无环图G=(V,E),并获得其中各有向边的权重,且各节点分别包含其所对应层在本地终端上的运行时长、以及在服务终端上的运行时长;V表示目标深度神经网络中各层分别所对应节点的集合,E表示目标深度神经网络中各层之间有向数据传输分别所对应边的集合,然后进入步骤B;
步骤B.遍历有向无环图G中出度大于1的各个节点,添加节点所对应的虚拟节点,并定义虚拟节点包含其所对应层在本地终端上的运行时长为0、以及在服务终端上的运行时长为0,以及更新该节点经对应虚拟节点与其出度所对应各其他节点之间的各有向边和有向边的权重;由此针对有向无环图G=(V,E)更新,获得有向无环图G'=(V',E'),V'表示有向无环图G'中节点的集合,E'表示有向无环图G'中边的集合,然后进入步骤C;
步骤C.初始化网络划分后的最小运行时长T(minCut)=+∞,以及初始化网络划分次数p=1,然后进入步骤D;
步骤D.针对步骤B所获有向无环图G'=(V',E'),判断p是否小于[N*(N-1)]/2,是则针对p的值进行加1更新,并进入步骤E;否则进入步骤T;其中,N表示集合V中的节点数;
步骤E.初始化集合A、集合t、集合s均为空集,并进入步骤F;
步骤F.随机针对集合V'中的一个节点进行标记,并复制该节点作为节点a,添加至集合A当中,然后进入步骤G;
步骤G.判断集合V'中节点的个数是否大于2,是则进入步骤H;否则将集合A中倒数第一个节点v倒1所对应的单节点或多节点添加至集合t中,并将倒数第二个节点v倒2所对应的单节点或多节点添加至集合s中,由集合(A-t)构成目标深度神经网络运行于本地终端的节点集合,集合t构成目标深度神经网络运行于服务终端的节点集合,并构成集合组合方案cut(A-t,t),然后进入步骤P;
步骤H.初始化节点最大卸载代价max=0,节点vmax=null,节点v=null,并进入步骤I;
步骤I.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,然后进入步骤J;
步骤J.判断集合A中是否存在信息与节点v信息相同的节点,是则根据如下公式:
Figure FDA0003687125230000021
获得节点v所对应的卸载代价Δ(v),其中,w(e(A,v))表示集合A中与节点v信息相同节点所连各边的权重和,
Figure FDA0003687125230000022
表示节点v在本地终端上的运行时长,
Figure FDA0003687125230000023
表示节点v在服务终端上的运行时长,然后进入步骤K;否则直接进入步骤L;
步骤K.判断Δ(v)是否大于节点最大卸载代价max,是则将Δ(v)赋给max,并将节点v赋给节点vmax,然后进入步骤L;否则直接进入步骤L;
步骤L.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤J;否则将节点vmax添加至集合A中,并清空集合V'中节点的标记,然后进入步骤M;
步骤M.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,同时初始化节点a与节点vmax组合的节点v,然后进入步骤N;
步骤N.判断节点a与节点vmax中是否存在信息与节点v信息相同的节点,是则直接进入步骤O;否则在节点v与节点v之间添加边,且定义该边的权值w(e(v,v))=w(e(a,v))+w(e(vmax,v)),以及定义节点v在本地终端上的运行时长
Figure FDA0003687125230000024
在服务终端上的运行时长
Figure FDA0003687125230000025
删除节点v与节点a之间的所有边,以及删除节点v与节点vmax之间的所有边,其中,w(e(a,v))表示节点a与节点v之间的权重,w(e(vmax,v))表示节点vmax与节点v之间的权重,然后进入步骤O;
步骤O.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤N;否则将节点v添加至集合A中,并清空集合V'中节点的标记,删除节点a与节点vmax,然后返回步骤G;
步骤P.针对集合组合方案cut(A-t,t),获得集合(A-t)中各节点在本地终端上运行时间之和、集合t中各节点在服务终端上运行时间之和、以及集合t中各节点所对应各出度边的权重之和,并获得该三者之和T(cut(A-t,t)),判断T(cut(A-t,t))是否小于T(minCut),是则将T(cut(A-t,t))赋值给T(minCut),并将集合组合方案cut(A-t,t)赋给minCut,然后进入步骤Q;否则进入步骤Q;
步骤Q.随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息给节点v,同时初始化节点v倒1与节点v倒2组合的节点v',然后进入步骤R;
步骤R.判断集合t与集合s中是否存在信息与节点v信息相同的节点,是则直接进入步骤S;否则节点v与节点v'之间添加边,且定义该边的权值w(e(v',v))=w(e(s,v))+w(e(t,v)),以及定义节点v'在本地终端上的运行时长
Figure FDA0003687125230000031
在服务终端上的运行时长
Figure FDA0003687125230000032
删除节点v与集合s中各节点之间的所有边,以及删除节点v与集合t中各节点之间的所有边,其中,w(e(s,v))表示集合s中与节点v相接各边的权重之和,w(e(t,v))表示集合t中与节点v相接各边的权重之和,
Figure FDA0003687125230000033
表示v倒1所对应单节点在本地终端上的运行时长、或v倒1所对应多节点在本地终端上运行时长之和,
Figure FDA0003687125230000034
表示v倒2所对应单节点在本地终端上的运行时长、或v倒2所对应多节点在本地终端上运行时长之和,
Figure FDA0003687125230000035
表示v倒1所对应单节点在服务终端上的运行时长、或v倒1所对应多节点在服务终端上运行时长之和,
Figure FDA0003687125230000036
表示v倒2所对应单节点在服务终端上的运行时长、或v倒2所对应多节点在服务终端上运行时长之和,然后进入步骤S;
步骤S.判断集合V'中是否存在未被标记的节点,是则随机针对集合V'中的一个未标记节点进行标记,并复制该节点的信息覆盖节点v,然后返回步骤R;否则将节点v'添加至集合A中,并清空集合V'中节点的标记,删除集合t中各节点与集合s中各节点,然后还原有向无环图G'为步骤B所获有向无环图G',并返回步骤D;
步骤T.按minCut所对应的集合组合方案cut(A-t,t),将集合(A-t)中各节点所对应目标深度神经网络的各层划分至本地终端运行,以及将集合t所对应目标深度神经网络的各层划分至服务终端运行;
所述步骤A包括如下步骤A1至步骤A4;
步骤A1.获得目标深度神经网络中各层分别所对应的输出数据信息Dn,1≤n≤N,Dn表示目标深度神经网络中第n层所对应的输出数据信息,然后进入步骤A2;
步骤A2.分别针对目标深度神经网络中的各层,获得层在本地终端上的运行时长
Figure FDA0003687125230000041
以及层在服务终端上的运行时长
Figure FDA0003687125230000042
表示目标深度神经网络中第n层在本地终端上的运行时长,
Figure FDA0003687125230000043
表示目标深度神经网络中第n层在服务终端上的运行时长,然后进入步骤A3;
步骤A3.根据如下公式:
Figure FDA0003687125230000044
获得目标深度神经网络中各层所对应的传输时长
Figure FDA0003687125230000045
其中,B表示本地终端与服务终端之间的带宽,
Figure FDA0003687125230000046
表示目标深度神经网络中第n层所对应的传输时长;然后进入步骤A4;
步骤A4.以目标深度神经网络中的各层为节点,各层之间的有向数据传输为各层所对应节点之间的有向边,构建目标深度神经网络所对应的有向无环图G=(V,E),并且定义各层所对应的传输时长为各层指向其他层有向数据传输所对应各边的权重,且各节点分别包含其所对应层在本地终端上的运行时长
Figure FDA0003687125230000047
以及在服务终端上的运行时长
Figure FDA0003687125230000048
V表示目标深度神经网络中各层分别所对应节点的集合,E表示目标深度神经网络中各层之间有向数据传输分别所对应边的集合,然后进入步骤B;
所述步骤B中,遍历有向无环图G中出度大于1的各个节点,分别执行如下步骤B1至步骤B4,针对有向无环图G=(V,E)更新,获得有向无环图G'=(V',E');
步骤B1.添加节点所对应的虚拟节点,以及添加该节点指向该虚拟节点的边,并以该节点所对应的传输时长定义该边的权重,然后进入步骤B2;
步骤B2.定义该虚拟节点在本地终端上的运行时长为0,以及定义该虚拟节点在服务终端上的运行时长为0,然后进入步骤B3;
步骤B3.添加该虚拟节点分别指向该节点出度所指向各个节点的边,并定义该各边的权重为0,然后进入步骤B4;
步骤B4.删除该节点与其出度所指向各个节点之间的边。
CN202011198228.8A 2020-10-30 2020-10-30 一种深度神经网络模块分割方法 Active CN112434805B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011198228.8A CN112434805B (zh) 2020-10-30 2020-10-30 一种深度神经网络模块分割方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011198228.8A CN112434805B (zh) 2020-10-30 2020-10-30 一种深度神经网络模块分割方法

Publications (2)

Publication Number Publication Date
CN112434805A CN112434805A (zh) 2021-03-02
CN112434805B true CN112434805B (zh) 2022-08-05

Family

ID=74695023

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011198228.8A Active CN112434805B (zh) 2020-10-30 2020-10-30 一种深度神经网络模块分割方法

Country Status (1)

Country Link
CN (1) CN112434805B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104751228A (zh) * 2013-12-31 2015-07-01 安徽科大讯飞信息科技股份有限公司 深度神经网络的构建方法及系统
CN108600019A (zh) * 2018-04-28 2018-09-28 电子科技大学 一种网络服务功能链映射方法
CN110347500A (zh) * 2019-06-18 2019-10-18 东南大学 用于边缘计算环境中面向深度学习应用的任务卸载方法
CN110971706A (zh) * 2019-12-17 2020-04-07 大连理工大学 Mec中近似最优化与基于强化学习的任务卸载方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104751228A (zh) * 2013-12-31 2015-07-01 安徽科大讯飞信息科技股份有限公司 深度神经网络的构建方法及系统
CN108600019A (zh) * 2018-04-28 2018-09-28 电子科技大学 一种网络服务功能链映射方法
CN110347500A (zh) * 2019-06-18 2019-10-18 东南大学 用于边缘计算环境中面向深度学习应用的任务卸载方法
CN110971706A (zh) * 2019-12-17 2020-04-07 大连理工大学 Mec中近似最优化与基于强化学习的任务卸载方法

Also Published As

Publication number Publication date
CN112434805A (zh) 2021-03-02

Similar Documents

Publication Publication Date Title
CN113193984B (zh) 一种空天地一体化网络资源映射方法及系统
Wang et al. A deep learning based energy-efficient computational offloading method in Internet of vehicles
CN110096362B (zh) 一种基于边缘服务器协作的多任务卸载方法
CN111522657B (zh) 一种分散设备协同深度学习推理方法
CN110519370B (zh) 一种基于设施选址问题的边缘计算资源分配方法
CN114338504A (zh) 一种基于网络边缘系统的微服务部署和路由方法
CN108804226B (zh) 一种用于分布式图计算的图分割划分方法
CN113758494B (zh) 导航路径规划方法、装置、设备和存储介质
CN110809275B (zh) 基于无线城域网的微云节点放置方法
CN111813506A (zh) 一种基于粒子群算法资源感知计算迁移方法、装置及介质
CN113992678A (zh) 一种海上mec负载均衡和资源分配联合优化的计算迁移方法
CN111885493B (zh) 一种基于改进布谷鸟搜索算法的微云部署方法
CN112200313A (zh) 一种深度学习模型推理加速的方法、系统、设备及介质
Shi et al. A DNN inference acceleration algorithm combining model partition and task allocation in heterogeneous edge computing system
CN112579285B (zh) 面向边缘网络的分布式神经网络协同优化方法
CN113645076B (zh) 基于超图匹配算法的虚拟网络资源分配方法
CN109495565B (zh) 基于分布式泛在计算的高并发服务请求处理方法和设备
CN112862083B (zh) 一种边缘环境下的深度神经网络推断方法及装置
CN114528987A (zh) 一种神经网络边缘-云协同计算分割部署方法
CN112434805B (zh) 一种深度神经网络模块分割方法
CN113821270A (zh) 任务卸载顺序预测方法、决策方法、电子设备及存储介质
CN112685162A (zh) 边缘服务器异构计算资源的高效能调度方法、系统和介质
CN114745386B (zh) 一种多用户边缘智能场景下的神经网络分割及卸载方法
CN115346099A (zh) 基于加速器芯片的图像卷积方法、芯片、设备及介质
CN114980160A (zh) 一种无人机辅助的太赫兹通信网络联合优化方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant