CN117422120A - 深度学习模型的计算图优化方法、装置、终端及存储介质 - Google Patents
深度学习模型的计算图优化方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN117422120A CN117422120A CN202311183610.5A CN202311183610A CN117422120A CN 117422120 A CN117422120 A CN 117422120A CN 202311183610 A CN202311183610 A CN 202311183610A CN 117422120 A CN117422120 A CN 117422120A
- Authority
- CN
- China
- Prior art keywords
- operation node
- node
- characteristic data
- nodes
- hash value
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000013136 deep learning model Methods 0.000 title claims abstract description 52
- 238000005457 optimization Methods 0.000 title claims abstract description 41
- 238000010586 diagram Methods 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 abstract description 5
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 10
- 238000003062 neural network model Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000013178 mathematical model Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种深度学习模型的计算图优化方法、装置、终端及存储介质,一种深度学习模型的计算图优化方法,包括:获取待优化计算图,待优化计算图包括多个操作节点,各操作节点具有特征数据;基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复;响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除;将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接。本申请不影响深度学习模型的功能,同时还能简化待优化计算图的结构,提高模型的运行效率。
Description
技术领域
本发明涉及人工智能技术领域,特别是涉及一种深度学习模型的计算图优化方法、装置、终端及计算机可读存储介质。
背景技术
近年来,随着人工智能的不断兴起,深度学习模型成为当前广泛应用的一种预测模型。深度学习模型已经愈来愈多地在应用于诸如语音识别和人脸识别等多种场景。
现在的深度学习模型是通过数据流图的方式表示神经网络计算。部分深度学习模型比较复杂,无法在对应的运行环境运行。
发明内容
本发明主要解决的技术问题是提供一种深度学习模型的计算图优化方法、装置、终端及计算机可读存储介质,解决现有技术中深度学习模型的计算图的结构复杂的问题。
为解决上述技术问题,本发明采用的第一个技术方案是:提供一种深度学习模型的计算图优化方法,包括:
获取待优化计算图,待优化计算图包括多个操作节点,各操作节点具有特征数据;
遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复;
响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除;
将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接,以得到优化后的计算图。
其中,操作节点包括属性信息和参数信息;
确定操作节点的特征数据的步骤包括:
基于操作节点的属性信息,确定操作节点的第一哈希值;
基于操作节点的参数信息,确定操作节点的第二哈希值;
将第一哈希值和第二哈希值进行累加,确定操作节点的特征数据。
其中,属性信息包括节点类型,参数信息包括参数名称、参数名称对应的参数值、节点权重以及节点层输入;
基于操作节点的属性信息,确定操作节点的第一哈希值,包括:
将节点类型的哈希值确定为操作节点的第一哈希值;
基于操作节点的参数信息,确定操作节点的第二哈希值,包括:
对参数名称的哈希值、参数值的哈希值、节点权重的哈希值以及节点层输入的哈希值进行累加,确定操作节点的第二哈希值。
其中,节点层输入的哈希值的获取方法包括:
将操作节点对应的各节点层输入的哈希值进行累加,得到操作节点对应的节点层输入的哈希值。
其中,待优化计算图中包括n个操作节点,且各操作节点具有对应的编号;选取的操作节点的编号为i;
基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复,包括:
将选取的操作节点的特征数据与编号为i+1至n对应的各操作节点的特征数据进行比对,确定选取的操作节点与编号为i+1至n对应的各操作节点是否重复;
响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除,包括:
响应于选取的操作节点的特征数据与编号为i+j对应的各操作节点的特征数据一致,则确定将编号为i+j对应的操作节点删除。
其中,将删除的操作节点的相邻前一操作节点的输出端选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接的步骤之后,还包括:
根据更新后的待优化计算图,确定待优化计算图中各操作节点的更新特征数据;
基于各操作节点的更新特征数据,确定更新后的待优化计算图中的各操作节点是否重复。
其中,计算图优化方法,还包括:
响应于选取的操作节点的特征数据与编号为i+1对应的操作节点的特征数据不同,则将选取的操作节点的特征数据与编号为i+2对应的操作节点的特征数据进行比对。
为解决上述技术问题,本发明采用的第二个技术方案是:提供一种深度学习模型的计算图优化装置,包括:
获取模块,用于获取待优化计算图,待优化计算图包括多个操作节点以及操作节点之间的有向边,操作节点具有特征数据;
分析模块,用于遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复;
优化模块,用于响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除;
处理模块,用于将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接,以得到优化后的计算图。
为解决上述技术问题,本发明采用的第三个技术方案是:提供一种终端,终端包括存储器、处理器以及存储于存储器中并在处理器上运行的计算机程序,处理器用于执行程序数据以实现如上述的深度学习模型的计算图优化方法中的步骤。
为解决上述技术问题,本发明采用的第四个技术方案是:提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的深度学习模型的计算图优化方法中的步骤。
本发明的有益效果是:区别于现有技术的情况,提供的一种深度学习模型的计算图优化方法、装置、终端及计算机可读存储介质,一种深度学习模型的计算图优化方法,包括:获取待优化计算图,待优化计算图包括多个操作节点,各操作节点具有特征数据;遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复;响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除;将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接。本申请基于各操作节点的特征信息对待优化计算图中重复出现的操作节点进行删减,一个特征信息对应保留一个操作节点,并将删减的操作节点的前一操作节点的输出层与保留的操作节点的输入层连接;将删减的操作节点的后一操作节点的输入层与保留的操作节点的输出层连接,不影响深度学习模型的功能,同时还能简化待优化计算图的结构,提高模型的运行效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明提供的深度学习模型的计算图优化方法的流程示意图;
图2是本发明提供的深度学习模型的计算图优化方法一具体实施例的流程示意图;
图3是本发明提供的一具体实施例中待优化计算图;
图4是图3提供的一具体实施例中更新后的待优化计算图;
图5是图3提供的一具体实施例中再次更新后的待优化计算图;
图6是图3提供的一具体实施例中提供的优化后的计算图;
图7是本发明提供的深度学习模型的计算图优化装置一实施例的框架示意图;
图8是本发明提供的终端一实施例的框架示意图;
图9为本发明提供的计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
为使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明所提供的一种深度学习模型的计算图优化方法做进一步详细描述。
在本文中使用以下术语。
神经网络:一般指人工神经网络(Artificial Neural Network,简写为ANN),它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法网络。一个经典的神经网络,也是最简单的神经网络结构,包含三个层次:输入层、输出层和中间层(又称隐藏层)。输入层、输出层和中间层又各自包括多个操作节点。
神经网络模型:在神经网络中,将节点数学化,产生节点的数学模型,神经网络中的大量的节点的数学模型构成了神经网络模型。
操作节点:深度学习模型中独立运算的最小单位,其接收输入,经本身的权重参数或其它模型中参数(例如超参)运算后,产生输出。深度学习模型可以包括卷积、池化等各种具体操作,具有包括卷积节点、池化节点等各种操作节点。深度学习模型中有多个层,每个层有多个操作节点,每个操作节点的输出是下一层的操作节点的输入。具体地,操作节点包括具体操作的程序及相关数据。例如,卷积操作节点中包括卷积操作用到的程序代码和卷积中用到的一些数据。
计算图(computation graph):目前深度学习框架主要有声明式编程和命令式编程两种编程方式。声明式编程,程序代码先定义一个神经网络模型结构,用于描述了计算逻辑,但不立即执行,只有在调用该网络模型结构的程序代码执行时,该神经网络模型结构才被执行,该神经网络模型结构包括多个节点(或者节点的符号表达式)以及它们之间的连接关系,并可采用图形化方式示出,因此该神经网络模型结构被称为静态计算图。而命令式编程,程序代码直接返回运算的结果,神经网络模型结构的定义和执行同步。通常来说,静态图方便对整体上的神经网络模型做编译优化,更有利于性能的提升,而动态图则非常便于用户对具体程序进行调试。
客户可将要使用的深度学习模型的计算图提供给云服务提供商,由云服务提供商进行模型处理后部署到数据中心的服务器上运行,而客户的应用系统能够使用数据中心的深度学习模型的计算图得到预测结果,由于数据中心使用专用于深度学习模型的加速单元来运行深度学习模型的计算图,因此将深度学习模型部署到数据中心有助于提高深度学习模型的推理性能。
加速单元:针对通用处理器在一些专门用途的领域(例如,处理图像、处理神经网络的各种运算,等等)效率不高的情况,为了提高在这些专门用途领域中的数据处理速度而设计的处理单元,它往往与通用处理器CPU配套使用,接受通用处理器的控制,执行一些特定用途或特定领域的处理,提高在特定用途或特定领域中的计算机处理效率。也可称为AI处理单元,并可包括图形处理单元(GPU)、中央处理器(CPU)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、以及专用AI加速硬件(例如加速单元)。
请参阅图1,图1是本发明提供的深度学习模型的计算图优化方法的流程示意图。
本实施例中提供一种深度学习模型的计算图优化方法,本申请实施例中所提供的方法实施例可以在服务器、终端设备或者类似的运算装置中执行。对于终端设备,只要该终端设备的处理器、存储器以及网络吞吐能力等能够满足深度学习模型的运行需求,就可以将深度学习模型部署在上面并在其上进行各种计算图处理。该深度学习模型的计算图优化方法包括如下步骤。
S1:获取待优化计算图,待优化计算图包括多个操作节点,各操作节点具有特征数据。
S2:遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复。
S3:响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除。
S4:将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接,以得到优化后的计算图。
请参阅图2,图2是本发明提供的深度学习模型的计算图优化方法一具体实施例的流程示意图。
具体地,步骤S1中获取待优化计算图的具体实施方式如下所示。
本实施例中,待优化计算图为深度学习网络模型的结构图。具体地,待优化计算图具体为数据流图。具体地,待优化计算图可以为变换型结构,也可以为事务型结构。变换型结构表示数据流图呈线性状态,具体包括输入、主处理和输出。事务型结构表示数据流图呈束状,即一束数据流平行流入或流出,同时有几个事务要求处理。本实施例中,以事务型结构的数据流图作为待优化计算图进行后续优化。
在一实施例中,待优化计算图包括多个操作节点,操作节点之间通过有向边连接。具体地,深度学习网络模型包括多个层,层作为操作节点。
在一实施例中,操作节点包括属性信息和参数信息。基于操作节点的属性信息,确定操作节点的第一哈希值;基于操作节点的参数信息,确定操作节点的第二哈希值;将第一哈希值和第二哈希值进行累加,确定操作节点的特征数据。
在一具体实施例中,属性信息包括节点类型。节点类型也称为层的类型。具体地,节点类型包括卷积、池化、全连接等。参数信息包括参数名称、参数名称对应的参数值、节点权重以及节点层输入。其中,参数名称包括步长(stride)、卷积核尺寸、扩边大小(pad)等。节点层输入为操作节点的输入端的连接关系。操作节点的节点层输入可以为一个,也可以为多个。操作节点的节点权重为操作节点所有计算所用到的权重,操作节点可以没有节点权重,也可以具有一个节点权重或两个节点权重。
在一实施例中,操作节点的节点类型通过对应的连续字符串表示。使用哈希算法,对连续字符串进行哈希散列,得到节点类型对应的哈希值,记为h1。
在一实施例中,操作节点的参数名称通过对应的连续字符串表示。使用哈希算法,对连续字符串进行哈希散列,得到参数名称对应的哈希值,记为h_param。
在一实施例中,操作节点的参数名称对应的参数值通过对应的连续字符串表示。使用哈希算法,对连续字符串进行哈希散列,得到参数名称的参数值对应的哈希值,记为h_value。
具体地,当操作节点具有n个参数名称时,参数名称具有对应的参数值。将各参数名称的哈希值以及各参数名称的参数值对应的哈希值进行累加,即h_param+h_value=h_param_1+h_value_1+h_param_2+h_value_2+…+h_param_n+h_value_n。
在一实施例中,操作节点的节点权重通过对应的连续字符串表示。使用哈希算法,对连续字符串进行哈希散列,得到节点权重对应的哈希值,记为h_weight。
例如,当操作节点具有2个节点权重时,将各节点权重的哈希值进行累加,即h_weight=h_weight_1+h_weight_2。
在一实施例中,操作节点的节点层输入通过对应的连续字符串表示。使用哈希算法,对连续字符串进行哈希散列,得到节点层输入对应的哈希值,记为h_in_name。
在一具体实施例中,当操作节点的节点层输入为一个时,将一个节点层输入的哈希值作为操作节点的特征数据。
在一具体实施例中,当操作节点的节点层输入至少为两个时,将操作节点对应的各节点层输入的哈希值进行累加。例如,操作节点具有两个节点层输入,则h_in_name=h_in_name_1+h_in_name_2。
哈希(Hash)算法是将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法。通过原始数据映射之后得到的二进制值串就是哈希值。本实施例中,用于加密的哈希算法是MD5(MD5 Message-Digest Algorithm,MD5消息摘要算法)和SHA(Secure Hash Algorithm,安全散列算法)。
将节点类型的哈希值确定为操作节点的第一哈希值,即h_sum_1=h1。
根据操作节点的节点类型,对操作节点对应的参数名称的哈希值、参数值的哈希值、节点权重的哈希值以及节点层输入的哈希值进行累加,确定操作节点的第二哈希值,即h_sum_2=h_param+h_value+h_weight+h_in_name。
将第一哈希值和第二哈希值进行累加,确定操作节点的特征数据,即h_sum=h_sum_1+h_sum_2。
通过上述步骤可以计算得到各操作节点的特征数据。
具体地,步骤S2中基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复的具体实施方式如下所示。
具体地,待优化计算图中包括n个操作节点,且各操作节点具有对应的编号。其中,操作节点的编号可以从0开始编号,直至最后一个操作节点的标号为n-1。也可以将操作节点的编号从1开始编号,直至最后一个操作节点的编号为n。具体标号方式根据实际情况进行设定,再次不作限制。
在一实施例中,遍历所有的操作节点,选取的操作节点的编号为i,将编号为i的操作节点作为比较层。将选取的操作节点的特征数据与编号为i+1至n对应的各操作节点的特征数据进行比对,确定选取的操作节点与编号为i+1至n对应的各操作节点是否重复。即将编号为i+1至n对应的各操作节点分别作为被比较层。
请参阅图3至图6,图3是本发明提供的一具体实施例中待优化计算图;图4是图3提供的一具体实施例中更新后的待优化计算图;图5是图3提供的一具体实施例中再次更新后的待优化计算图;图6是图3提供的一具体实施例中提供的优化后的计算图。
在一实施例中,请参阅图3,待优化计算图中的input为输入数据,后面的都为具体的操作节点,括号里面的为操作节点的编号,外面的为操作节点的节点类型,待优化计算图的顺序为input、ReduceMean(0)、Sub(1)、Mul(2)、Sub(3)、Mul(4)、Sub(5)、Mul(6)、Mul(7)、Mul(8)。
其中,Sub(1),Sub(3),Sub(5)的输入都为2个,分别为input的输出以及ReduceMean(0)的输出,并且Sub(1)、Sub(3)、Sub(5)的参数名称和参数值都相同,没有权重,因此Sub(1)、Sub(3)、Sub(5)的特征数据一致。Mul(2)与Mul(4)参数和权重一样,其他的Mul各不相同。
具体地,首先将ReduceMean(0)作为比较层,将ReduceMean(0)的特征数据与Sub(1)、Mul(2)、Sub(3)、Mul(4)、Sub(5)、Mul(6)、Mul(7)、Mul(8)分别对应的特征数据依次进行比较,确定ReduceMean(0)是否与其他操作节点重复。
具体地,步骤S3中响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除的具体实施方式如下所示。
在一实施例中,响应于选取的操作节点的特征数据与编号为i+j对应的各操作节点的特征数据一致,则确定将编号为i+j对应的操作节点删除。
在另一实施例中,响应于选取的操作节点的特征数据与编号为i+1对应的操作节点的特征数据不同,则将选取的操作节点的特征数据与编号为i+2对应的操作节点的特征数据进行比对。
具体地,通过将ReduceMean(0)的特征数据与Sub(1)、Mul(2)、Sub(3)、Mul(4)、Sub(5)、Mul(6)、Mul(7)、Mul(8)分别对应的特征数据进行比较,确定ReduceMean(0)的特征数据与其他操作节点的特征数据均不相同,则表明其他操作节点均与ReduceMean不重复。
将Sub(1)作为比较层,将Sub(1)的特征数据与Mul(2)、Sub(3)、Mul(4)、Sub(5)、Mul(6)、Mul(7)、Mul(8)分别对应的特征数据依次进行比较。在比较过程中,当确定Sub(1)的特征数据与Sub(3)的特征数据一致,则将Sub(3)删除,且不需要再将Sub(1)的特征数据与Mul(4)、Sub(5)、Mul(6)、Mul(7)、Mul(8)分别对应的特征数据进行比较。
具体地,步骤S4中将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接的具体实施方式如下所示。
在一实施例中,基于删除的操作节点的节点层输入和选取的操作节点的节点层输入,确定是否将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接。
当删除的操作节点的节点层输入和选取的操作节点的节点层输入相同,则直接断开删除的操作节点的输入端与相邻前一操作节点的输出端,不需要将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接。
当删除的操作节点的节点层输入和选取的操作节点的节点层输入不相同时,则将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接。
具体地,由于Sub(3)的节点层输入和Sub(1)的节点层输入相同,即直接将Sub(3)与ReduceMean(0)、input之间的有向边断开。
由于Sub(3)的输出端与Mul(4)的输入端连接,由于Sub(3)与Sub(1)重复,则在Sub(1)与Sub(4)之间建立有向边,以使Sub(1)的输出端与Sub(4)的输入端连接。
在另一实施例中,深度学习模型的计算图优化方法还包括根据更新后的待优化计算图,确定待优化计算图中各操作节点的更新特征数据;基于各操作节点的更新特征数据,确定更新后的待优化计算图中的各操作节点是否重复。
具体地,由于图中的操作节点Sub(3)被删除,因此得到更新后的待优化计算图,请参阅图4。通过上述步骤S1的具体实施例中的方法计算更新后的待优化计算图中的各操作节点的特征数据,将计算得到的特征数据作为更新特征数据。
通过上述步骤S2至S4中的方法不断更新待优化计算图,直至各操作节点之间均不存在重复,则得到优化后的计算图。
在一具体实施例中,首先将ReduceMean(0)作为比较层,将ReduceMean(0)的更新特征数据与Sub(1)、Mul(2)、Mul(4)、Sub(5)、Mul(6)、Mul(7)、Mul(8)分别对应的更新特征数据进行比较,确定ReduceMean(0)的更新特征数据与其他操作节点的更新特征数据均不相同,则表明其他操作节点均与ReduceMean不重复。
将Sub(1)作为比较层,将Sub(1)的更新特征数据与Mul(2)、Mul(4)、Sub(5)、Mul(6)、Mul(7)、Mul(8)分别对应的更新特征数据进行比较。在比较过程中,当确定Sub(1)的更新特征数据与Sub(5)的更新特征数据相等,则将Sub(5)删除,且不需要再将Sub(1)的更新特征数据与Mul(6)、Mul(7)、Mul(8)分别对应的更新特征数据进行比较。
重复上述步骤,对更新后的待优化计算图再次进行优化,得到更新后的待优化计算图,如图5所示。
通过上述方式对更新后的待优化计算图进行再次优化,直至待优化计算图中的各操作节点之间均不重复,得到优化后的计算图,请参阅图6。本实施例中优化后的计算图相比于图3中的待优化计算图,删除了3个重复的操作节点,具体为Sub(3)、Mul(4)、Sub(5)。
客户将要在数据中心运行的深度学习模型的优化后的计算图提供给云服务商。但在此之前,为了使计算图能够适配于对应的运行环境,客户通常会对计算图进行对应处理。
本实施例提供一种深度学习模型的计算图优化方法,包括:获取待优化计算图,待优化计算图包括多个操作节点,各操作节点具有特征数据;遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复;响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除;将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接。本申请基于各操作节点的特征信息对待优化计算图中重复出现的操作节点进行删减,一个特征信息对应保留一个操作节点,并将删减的操作节点的前一操作节点的输出层与保留的操作节点的输入层连接;将删减的操作节点的后一操作节点的输入层与保留的操作节点的输出层连接,不影响深度学习模型的功能,同时还能简化待优化计算图的结构,提高模型的运行效率。
请参阅图7,图7是本发明提供的深度学习模型的计算图优化装置一实施例的框架示意图。本实施例提供一种深度学习模型的计算图优化装置60,深度学习模型的计算图优化装置60包括获取模块61、分析模块62、优化模块63和处理模块64。
获取模块61用于获取待优化计算图,待优化计算图包括多个操作节点以及操作节点之间的有向边,操作节点具有特征数据。
分析模块62用于遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复。
优化模块63用于响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除。
处理模块64用于将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接。
本实施例提供的一种深度学习模型的计算图优化装置,基于各操作节点的特征信息对待优化计算图中重复出现的操作节点进行删减,一个特征信息对应保留一个操作节点,并将删减的操作节点的前一操作节点的输出层与保留的操作节点的输入层连接;将删减的操作节点的后一操作节点的输入层与保留的操作节点的输出层连接,不影响深度学习模型的功能,同时还能简化待优化计算图的结构,提高模型的运行效率。
请参阅图8,图8是本发明提供的终端一实施例的框架示意图。终端80包括相互耦接的存储器81和处理器82,处理器82用于执行存储器81中存储的程序指令,以实现上述任一一种深度学习模型的计算图优化方法实施例的步骤。在一个具体的实施场景中,终端80可以包括但不限于:微型计算机、服务器,此外,终端80还可以包括笔记本电脑、平板电脑等移动设备,在此不做限定。
具体而言,处理器82用于控制其自身以及存储器81以实现上述任一一种深度学习模型的计算图优化方法实施例的步骤。处理器82还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器82可能是一种集成电路芯片,具有信号的处理能力。处理器82还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器82可以由集成电路芯片共同实现。
上述方案,一种深度学习模型的计算图优化方法包括:获取待优化计算图,待优化计算图包括多个操作节点,各操作节点具有特征数据;遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复;响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除;将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接。
请参阅图9,图9为本发明提供的计算机可读存储介质一实施例的框架示意图。计算机可读存储介质90存储有能够被处理器运行的程序指令901,程序指令901用于实现上述任一一种深度学习模型的计算图优化方法实施例的步骤。
上述方案,一种深度学习模型的计算图优化方法包括:获取待优化计算图,待优化计算图包括多个操作节点,各操作节点具有特征数据;遍历所有操作节点,基于选取的操作节点的特征数据与其他操作节点的特征数据,确定其他操作节点是否与选取的操作节点重复;响应于选取的操作节点与任一其他操作节点重复,则将与选取的操作节点重复的操作节点删除;将删除的操作节点的相邻前一操作节点的输出端与选取的操作节点的输入端连接,将选取的操作节点的输出端与删除的操作节点的相邻后一操作节点的输入端连接。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考,为了简洁,本文不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本发明的实施方式,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种深度学习模型的计算图优化方法,其特征在于,包括:
获取待优化计算图,所述待优化计算图包括多个操作节点,各所述操作节点具有特征数据;
遍历所有所述操作节点,基于选取的所述操作节点的特征数据与其他各所述操作节点的特征数据,确定其他所述操作节点是否与选取的所述操作节点重复;
响应于选取的所述操作节点与任一其他所述操作节点重复,则将与选取的所述操作节点重复的所述操作节点删除;
将删除的所述操作节点的相邻前一所述操作节点的输出端与选取的所述操作节点的输入端连接,将选取的所述操作节点的输出端与删除的所述操作节点的相邻后一所述操作节点的输入端连接,以得到优化后的计算图。
2.根据权利要求1所述的计算图优化方法,其特征在于,所述操作节点包括属性信息和参数信息;
确定所述操作节点的特征数据的步骤包括:
基于所述操作节点的属性信息,确定所述操作节点的第一哈希值;
基于所述操作节点的参数信息,确定所述操作节点的第二哈希值;
将所述第一哈希值和所述第二哈希值进行累加,确定所述操作节点的特征数据。
3.根据权利要求2所述的计算图优化方法,其特征在于,所述属性信息包括节点类型,所述参数信息包括参数名称、所述参数名称对应的参数值、节点权重以及节点层输入;
所述基于所述操作节点的属性信息,确定所述操作节点的第一哈希值,包括:
将所述节点类型的哈希值确定为所述操作节点的第一哈希值;
所述基于所述操作节点的参数信息,确定所述操作节点的第二哈希值,包括:
分别计算得到所述参数名称的哈希值、所述参数值的哈希值、所述节点权重的哈希值以及所述节点层输入的哈希值;
对所述参数名称的哈希值、所述参数值的哈希值、所述节点权重的哈希值以及所述节点层输入的哈希值进行累加,得到所述操作节点的第二哈希值。
4.根据权利要求3所述的计算图优化方法,其特征在于,
所述节点层输入的哈希值的获取方法包括:
将所述操作节点对应的各所述节点层输入的哈希值进行累加。
5.根据权利要求1所述的计算图优化方法,其特征在于,所述待优化计算图中包括n个所述操作节点,且各所述操作节点具有对应的编号;选取的所述操作节点的编号为i;
所述基于选取的所述操作节点的特征数据与其他所述操作节点的特征数据,确定其他所述操作节点是否与选取的所述操作节点重复,包括:
将选取的所述操作节点的特征数据与编号为i+1至n对应的各所述操作节点的特征数据进行比对,确定选取的所述操作节点与编号为i+1至n对应的各所述操作节点是否重复;
所述响应于选取的所述操作节点与任一其他所述操作节点重复,则将与选取的所述操作节点重复的所述操作节点删除,包括:
响应于选取的所述操作节点的特征数据与编号为i+j对应的各所述操作节点的特征数据一致,则确定将编号为i+j对应的所述操作节点删除。
6.根据权利要求5所述的计算图优化方法,其特征在于,
所述将删除的所述操作节点的相邻前一所述操作节点的输出端选取的所述操作节点的输入端连接,将选取的所述操作节点的输出端与删除的所述操作节点的相邻后一所述操作节点的输入端连接的步骤之后,还包括:
根据更新后的所述待优化计算图,确定所述待优化计算图中各所述操作节点的更新特征数据;
基于各所述操作节点的更新特征数据,确定更新后的所述待优化计算图中的各所述操作节点是否重复。
7.根据权利要求5所述的计算图优化方法,其特征在于,
所述计算图优化方法,还包括:
响应于选取的所述操作节点的特征数据与编号为i+1对应的所述操作节点的特征数据不同,则将选取的所述操作节点的特征数据与编号为i+2对应的所述操作节点的特征数据进行比对。
8.一种深度学习模型的计算图优化装置,其特征在于,包括:
获取模块,用于获取待优化计算图,所述待优化计算图包括多个操作节点以及所述操作节点之间的有向边,所述操作节点具有特征数据;
分析模块,用于遍历所有所述操作节点,基于选取的所述操作节点的特征数据与其他所述操作节点的特征数据,确定其他所述操作节点是否与选取的所述操作节点重复;
优化模块,用于响应于选取的所述操作节点与任一其他所述操作节点重复,则将与选取的所述操作节点重复的所述操作节点删除;
处理模块,用于将删除的所述操作节点的相邻前一所述操作节点的输出端与选取的所述操作节点的输入端连接,将选取的所述操作节点的输出端与删除的所述操作节点的相邻后一所述操作节点的输入端连接,以得到优化后的计算图。
9.一种终端,其特征在于,所述终端包括存储器、处理器以及存储于所述存储器中并在所述处理器上运行的计算机程序,所述处理器用于执行程序数据以实现如权利要求1~7任一项所述的深度学习模型的计算图优化方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~7任一项所述的深度学习模型的计算图优化方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311183610.5A CN117422120A (zh) | 2023-09-13 | 2023-09-13 | 深度学习模型的计算图优化方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311183610.5A CN117422120A (zh) | 2023-09-13 | 2023-09-13 | 深度学习模型的计算图优化方法、装置、终端及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117422120A true CN117422120A (zh) | 2024-01-19 |
Family
ID=89525482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311183610.5A Pending CN117422120A (zh) | 2023-09-13 | 2023-09-13 | 深度学习模型的计算图优化方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117422120A (zh) |
-
2023
- 2023-09-13 CN CN202311183610.5A patent/CN117422120A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8280836B2 (en) | Converting unordered graphs to oblivious read once ordered graph representation | |
KR20210093931A (ko) | 기계 학습 모델의 자동화된 생성 | |
CN111314138B (zh) | 有向网络的检测方法、计算机可读存储介质及相关设备 | |
CN109313720A (zh) | 具有稀疏访问的外部存储器的增强神经网络 | |
AU2021236553A1 (en) | Graph neural networks for datasets with heterophily | |
US20180293486A1 (en) | Conditional graph execution based on prior simplified graph execution | |
CN112214499B (zh) | 图数据处理方法、装置、计算机设备和存储介质 | |
CN114897173A (zh) | 基于变分量子线路确定PageRank的方法及装置 | |
CN110490302B (zh) | 一种神经网络编译优化方法、装置以及相关产品 | |
JP7369288B2 (ja) | 画像処理方法、画像処理用コマンドの生成方法および装置 | |
WO2018135515A1 (ja) | 情報処理装置、ニューラルネットワークの設計方法及び記録媒体 | |
JP2000057123A (ja) | 順序回路の状態探索方法および装置並びに状態探索プログラムを記録した記録媒体 | |
KR102105951B1 (ko) | 추론을 위한 제한된 볼츠만 머신 구축 방법 및 추론을 위한 제한된 볼츠만 머신을 탑재한 컴퓨터 장치 | |
CN111028092A (zh) | 基于Louvain算法的社区发现方法、计算机设备及其可读存储介质 | |
CN117422120A (zh) | 深度学习模型的计算图优化方法、装置、终端及存储介质 | |
US9760835B2 (en) | Reasoning over cyclical directed graphical models | |
CN116629330A (zh) | 一种算子检测方法、装置以及计算机设备 | |
JP2021527859A (ja) | 深層領域拡張を使用した画像内の不規則形状のセグメント化 | |
JP5555238B2 (ja) | ベイジアンネットワーク構造学習のための情報処理装置及びプログラム | |
CN114080609A (zh) | 基于编码知识的非线性因果建模 | |
CN117114087B (zh) | 故障预测方法、计算机设备和可读存储介质 | |
CN115796228B (zh) | 算子融合方法、装置、设备以及存储介质 | |
CN116301903B (zh) | 一种编译器、ai网络编译方法、处理方法、执行系统 | |
CN117521737B (zh) | 网络模型的转换方法、装置、终端及计算机可读存储介质 | |
CN116755714B (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 |