CN112862109B - 深度学习模型的执行方法、装置、电子设备及存储介质 - Google Patents
深度学习模型的执行方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112862109B CN112862109B CN202110177204.2A CN202110177204A CN112862109B CN 112862109 B CN112862109 B CN 112862109B CN 202110177204 A CN202110177204 A CN 202110177204A CN 112862109 B CN112862109 B CN 112862109B
- Authority
- CN
- China
- Prior art keywords
- calculation
- deep learning
- parameter
- learning model
- parameter 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.)
- Active
Links
- 238000013136 deep learning model Methods 0.000 title claims abstract description 169
- 238000003860 storage Methods 0.000 title claims abstract description 61
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004364 calculation method Methods 0.000 claims abstract description 336
- 230000015654 memory Effects 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 abstract description 17
- 238000005457 optimization Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 29
- 238000010276 construction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000012821 model calculation Methods 0.000 description 4
- 230000008901 benefit 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
- 238000012545 processing Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Medical Informatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Feedback Control In General (AREA)
Abstract
本公开提供了一种深度学习模型的执行方法、装置、电子设备以及存储介质,本公开在存储部件中存储有与第一参数值相匹配的计算图,基于确定的逻辑控制参数取的值,即第一参数值能够找到深度学习模型应该执行的逻辑的计算序列,这样不仅能够保证深度学习模型执行的准确性,还通过第一参数值与计算图的匹配关系,实现了深度学习模型能够执行复杂逻辑的模型运算。另外,利用存储部件保存计算图能够实现对一种逻辑的计算序列只需进行一次算子转换,就能进行多次运算,有效降低了转换开销,同时,利用计算图还能实现对深度学习模型的运算优化。
Description
技术领域
本公开涉及机器学习技术领域,具体而言,涉及一种深度学习模型的执行方法、装置、电子设备及存储介质。
背景技术
深度学习框架提供高级语言的编程接口,用户使用高级语言定义深度学习模型,并由深度学习框架负责执行深度学习模型所要执行的运算。
目前,深度学习模型的执行存在算子转换开销大、无法优化运算过程以及无法较好的表达复杂逻辑的运算的问题。
发明内容
本公开实施例至少提供一种深度学习模型的执行方法、装置、电子设备以及存储介质。
第一方面,本公开实施例提供了一种深度学习模型的执行方法,包括:
获取待执行的深度学习模型;
确定所述深度学习模型的逻辑控制参数的第一参数值;
在存储部件中存储有与所述第一参数值相匹配的所述深度学习模型的计算图的情况下,基于所述计算图执行所述深度学习模型的模型运算;其中,所述逻辑控制参数的不同的第一参数值匹配有不同的计算图。
该方面中,在逻辑控制参数取不同值时,深度学习模型应执行不同逻辑的计算序列,该计算序列可以包括多个类型的计算,即深度学习模型应该按照不同的计算图执行模型运算。存储部件中存储有与第一参数值相匹配的计算图,基于确定的逻辑控制参数取的值,即第一参数值能够找到深度学习模型应该执行的计算类型序列,这样不仅能够保证深度学习模型执行的准确性,还通过第一参数值与计算图的匹配关系,实现了深度学习模型能够执行复杂逻辑的模型运算。另外,利用存储部件保存计算图能够实现对一种逻辑的运算序列只需进行一次算子转换,就能进行多次运算,有效降低了转换开销,同时,利用计算图还能实现对深度学习模型的运算优化。
在一种可能的实施方式中,上述深度学习模型的执行方法还包括:
确定所述深度学习模型的数值计算参数;
在存储部件中未存储有与所述第一参数值相匹配的计算图的情况下,基于所述第一参数值以及所述数值计算参数,生成与所述第一参数值相匹配的所述深度学习模型的计算图;
基于生成的所述计算图,执行所述深度学习模型的模型运算。
该实施方式,在存储部件中未存储有与第一参数值相匹配的计算图时,根据数值计算参数以及第一参数值生成计算图,再基于生成的计算图执行模型运算,有效保证了深度学习模型的执行效率和执行准确度。
在一种可能的实施方式中,在生成所述计算图之后,上述深度学习模型的执行方法还包括:将生成的所述计算图,以及生成的所述计算图与所述第一参数值的匹配关系存入所述存储部件。
该实施方式,在存储部件中未存储有与第一参数值相匹配的计算图时,生成与第一参数值相匹配的计算图,并将生成的计算图以及其与第一参数值的匹配关系存入存储部件中,能够在逻辑控制参数的取值再次为第一参数值时,直接从存储部件中获取对应的计算图,以执行对应逻辑的计算序列,这样避免了重复进行算子转换,减少了转换开销,并且提高了模型运算的执行效率,还保证了深度学习模型能够执行不同的逻辑控制参数所对应的不同逻辑的计算序列,即实现了深度学习模型能够执行较为复杂逻辑的运算。
在一种可能的实施方式中,所述计算图对应的计算图信息包括执行所述深度学习模型所要执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;
基于所述计算图执行所述模型运算,包括:
基于所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
该实施方式,利用计算类型序列以及计算类型序列中每个计算类型对应的计算参数标识符,能够提高模型运算的执行效率,同时,利用计算图还能对模型运算进行优化,有利于进一步提高模型运算的执行效率。
在一种可能的实施方式中,所述计算参数标识符包括所述深度学习模型的数值计算参数对应的第一标识符;
所述基于所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算,包括:
确定所述深度学习模型的数值计算参数对应的第二参数值;
基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
该实施方式,数值计算参数的主要作用是用于模型运算的具体数值运算的执行,利用数值计算参数的取值,即上述第二参数值能够保证模型运算的顺利执行。
在一种可能的实施方式中,所述计算参数标识符还包括所述深度学习模型的逻辑控制参数对应的第二标识符;
所述基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算,包括:
基于所述第二参数值、所述第一参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
该实施方式,逻辑控制参数除了控制模型运算的运算逻辑之外,也可能参与模型运算的具体数值运算过程,因此利用第二参数值和所述第一参数值,能够进一步保证模型运算的顺利执行。
在一种可能的实施方式中,所述基于所述第一参数值以及所述数值计算参数,生成与所述第一参数值相匹配的所述深度学习模型的计算图,包括:
将所述第一参数值和所述数值计算参数对应的第一标识符输入所述深度学习模型,基于所述深度学习模型的运算过程,确定所述深度学习模型所执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;所述计算参数标识符包括所述逻辑控制参数对应的第二标识符和/或所述数值计算参数对应的第一标识符;
基于所述计算类型序列和所述每个计算类型对应的计算参数标识符,生成与所述第一参数值相匹配的计算图。
该实施方式,将所述第一参数值和所述数值计算参数对应的第一标识符输入所述深度学习模型,能够准确地确定在逻辑控制参数的取值为第一参数值时,深度学习模型所执行的计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符,继而,利用确定的计算类型序列和每个计算类型对应的计算参数,能够生成准确的计算图。
第二方面,本公开实施例提供了一种深度学习模型的执行装置,包括:
模型获取模块,用于获取待执行的深度学习模型;
解析模块,用于确定所述深度学习模型的逻辑控制参数的第一参数值;
执行模块,用于在存储部件中存储有与所述第一参数值相匹配的所述深度学习模型的计算图的情况下,基于所述计算图执行所述深度学习模型的模型运算;其中,所述逻辑控制参数的不同的第一参数值对应不同的计算图。
第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述深度学习模型的执行装置、电子设备、及计算机可读存储介质的效果描述参见上述深度学习模型的执行方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种深度学习模型的执行方法的流程图;
图2示出了本公开实施例所提供的深度学习模型的执行方法中,生成计算图的具体方法的流程图;
图3示出了本公开实施例所提供的另一种深度学习模型的执行方法的流程图;
图4示出了本公开实施例所提供的一种深度学习模型的执行装置的示意图;
图5示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,目前对深度学习模型的模型运算进行执行的时候,通常存在算子转换开销大、无法优化运算过程以及无法较好的表达复杂逻辑的运算的问题。针对上述问题,本公开提供了一种深度学习模型的执行方法、执行装置、电子设备以及存储介质,本公开中,存储部件中存储有与第一参数值相匹配的计算图,基于确定的逻辑控制参数取的值,即第一参数值能够找到深度学习模型应该执行的逻辑的计算序列,这样不仅能够保证深度学习模型执行的准确性,还通过第一参数值与计算图的匹配关系,实现了深度学习模型能够执行复杂逻辑的模型运算。另外,利用存储部件保存计算图能够实现对一种逻辑的计算序列只需进行一次算子转换,就能进行多次运算,有效降低了转换开销,同时,利用计算图还能实现对深度学习模型的运算优化。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种深度学习模型的执行方法进行详细介绍,本公开实施例所提供的深度学习模型的执行方法的执行主体一般为具有一定计算能力的计算机设备,该计算机设备例如包括:终端设备或服务器或其它处理设备,终端设备可以为用户设备(User Equipment,UE)、移动设备、用户终端、终端、蜂窝电话、无绳电话、个人数字处理(Personal Digital Assistant,PDA)、手持设备、计算设备、车载设备、可穿戴设备等。在一些可能的实现方式中,该深度学习模型的执行方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
下面以执行主体为终端设备为例对本公开实施例提供的深度学习模型的执行方法加以说明。
如图1所示,为本公开实施例提供的深度学习模型的执行方法的流程图,所述方法可以包括如下步骤:
S110、获取待执行的深度学习模型。
上述深度学习模型可以是目标识别、三维重建、视觉导航、图像分割等场景中的深度学习模型,本公开对深度学习模型的应用场景并不进行限定。示例性地,上述深度学习模型可以是卷积神经网络模型、去卷积神经网络模型、深度卷积逆向图网络模型、循环神经网络模型、长短期记忆网络模型、深度残差网络模型等。
S120、确定所述深度学习模型的逻辑控制参数的第一参数值。
一般地,深度学习模型可以看作一个大的函数,该函数里面包括逻辑控制参数,该逻辑控制参数用于控制深度学习模型在进行模型运算的时候,执行哪个具体逻辑的计算序列。例如,函数中包括多个分支的计算序列,那么,利用逻辑控制参数的具体取值,可以确定模型运算具体要执行哪个分支的计算序列。再例如函数中包括循环的计算序列,那么,利用逻辑控制参数的具体取值,可以确定是跳出当前循环的计算序列,还是继续执行当前循环的计算序列。上述计算序列包括至少一种类型的计算。
示例性地,一个函数包括两个分支的计算,该函数的逻辑控制参数为布尔量b,在b为真时,函数执行X+3的计算,在b为假时,函数执行X+2的计算,其中,X为函数中的数值计算参数,该参数不参与模型运算的逻辑控制,只用于进行具体的数值运算。该函数在高级语言中,即深度学习模型中可以用条件分支来表达。
示例性地,一个函数包括循环m对应的计算序列以及其他计算序列,该函数的逻辑控制参数为循环执行次数n,在n大于或等于3时,函数跳出循环m的计算序列,执行循环m之后的计算;在n小于3时,函数继续执行循环m的计算序列。循环执行次数n不参与循环对应的计算,其用于控制模型运算的执行逻辑。
通过对深度学习模型进行解析,可以确定深度学习模型中的逻辑控制参数以及逻辑控制参数的取值,即上述第一参数值。
S130、在存储部件中存储有与所述第一参数值相匹配的所述深度学习模型的计算图的情况下,基于所述计算图执行所述深度学习模型的模型运算;其中,所述逻辑控制参数的不同的第一参数值匹配有不同的计算图。
上述计算图可以基于深度学习模型对应的计算序列构建的,示例性地,可以采用上述计算序列对应的计算类型序列,以及每个计算类型对应的计算参数标识符组合的形式来构建,计算图的构建形式不唯一。上述计算类型序列,以及每个计算类型对应的计算参数标识符均为对应的计算图的计算图信息。
在逻辑控制参数取不同值时,深度学习模型应执行不同逻辑的计算序列,例如执行不同分支对应的计算序列。即在逻辑控制参数取不同值时,深度学习模型应该按照不同的计算图执行模型运算。
存储部件中存储有不同的第一参数值所匹配的不同的计算图。基于步骤S120中确定的逻辑控制参数取的值(第一参数值)能够找到深度学习模型应该执行的逻辑的计算序列,即基于步骤S120中确定的第一参数值能够找到深度学习模型应该执行的逻辑的计算图。这样不仅能够保证深度学习模型执行的准确性,还通过第一参数值与计算图的匹配关系,实现了深度学习模型能够执行复杂逻辑的模型运算。另外,利用存储部件保存计算图能够实现对一种逻辑的计算序列只需进行一次算子转换,就能进行多次运算,有效降低了转换开销,同时,利用存储部件中存储的计算图还能实现对深度学习模型的模型运算的优化。
上述存储部件既可以是本实施例的执行主体终端设备中的存储部件,也可以是独立于终端设备之外的一个单独的存储部件,本公开对存储部件所属的设备并不进行限定。
示例性地,根据上面的描述可知,计算图对应的计算图信息包括执行所述深度学习模型所要执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符,此时,可以利用如下步骤执行模型运算:基于所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
根据上面的描述可知,上述计算图信息中除了包括计算类型序列,还包括计算参数标识符,示例性地,计算参数标识符可以包括深度学习模型中的数值计算参数对应的标识符,计算图信息并不直接包括数值计算参数的具体取值,即下述第二参数值。数值计算参数对应的标识符可以是基于数值计算参数的一些取值限定来抽象得到的,例如,数值计算参数对应的标识符是根据数值计算参数的矩阵形状、数据类型等的限定抽象得到的。当然,数值计算参数对应的标识符也可以不基于上述取值限定来确定,只是一个与数值计算参数具有一一对应关系的标识符即可。
逻辑控制参数主要用于控制深度学习模型执行哪个具体逻辑的计算序列,即具体执行哪个计算图对应的运算,一般不参与模型运算的具体的数值运算。但是逻辑控制参数也可能参与模型运算的具体的数值运算,此时,上述计算图信息中还可以包括逻辑控制参数抽象得到的标识符,上述计算参数标识符还可以包括逻辑控制参数对应的标识符。逻辑控制参数对应的标识符的抽象过程与数值计算参数对应的标识符的抽象过程相同,这里不再赘述。当然,逻辑控制参数对应的标识符也可以不是通过抽象的方式来确定的,其可以只是一个与逻辑控制参数具有一一对应关系的标识符即可。
另外,计算图信息中可以直接包括逻辑控制参数的具体取值,即上述第一参数值,而不包括逻辑控制参数对应的标识符,本公开对此并不进行限定。
在逻辑控制参数不用于进行具体的数值运算时,可以利用如下步骤实现上述模型运算:
首先对深度学习模型进行解析,确定所述深度学习模型的数值计算参数对应的第二参数值;之后,基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符执行所述模型运算。
由于逻辑控制参数不用于具体的数值计算,所以计算参数标识符中只包括数值计算参数对应的标识符,这样,基于每个计算类型对应的计算参数标识符,将第二参数值带入计算类型序列中的每个具体的计算,就能执行深度学习模型对应的模型运算。
在具体实施时,可以将第二参数值和所述计算图放入执行器中,执行器基于第二参数值和计算图执行模型运算,并返回执行结果。
在逻辑控制参数用于进行具体的数值运算时,可以利用利用如下步骤实现上述模型运算:
首先对深度学习模型进行解析,确定所述深度学习模型的数值计算参数对应的第二参数值;之后,基于所述第二参数值和第一参数值,所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
由于逻辑控制参数参与具体的数值计算,所以计算参数标识符中包括数值计算参数对应的标识符以及逻辑控制参数对应的标识符,这样,基于每个计算类型对应的计算参数标识符,将第一参数值和第二参数值带入计算类型序列中的每个具体的计算,就能执行深度学习模型对应的模型运算。
在具体实施时,可以将第二参数值、第一参数值和所述计算图放入执行器中,执行器基于第二参数值、第一参数值和计算图执行模型运算,并返回执行结果。
如图2所示,在存储部件中未存储有与第一参数值相匹配的计算图时,可以利用如下步骤生成计算图并执行模型运算:
S210、确定所述深度学习模型的数值计算参数。
这里通过对深度学习模型进行解析,可以确定深度学习模型的数值计算参数。数值计算参数只用于参与具体的数值运算。
在执行下一步骤之前,可以根据数值计算参数的矩阵形状、数据类型等的限定抽象得到的数值计算参数的标识符,以便确定下述计算图。
S220、在存储部件中未存储有与所述第一参数值相匹配的计算图的情况下,基于所述第一参数值以及所述数值计算参数,生成与所述第一参数值相匹配的所述深度学习模型的计算图。
这里,具体可以是首先将所述第一参数值和所述数值计算参数对应的标识符输入所述深度学习模型,基于所述深度学习模型的运算过程,确定所述深度学习模型所执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;所述计算参数标识符包括所述逻辑控制参数对应的标识符和/或所述数值计算参数对应的标识符。
之后,基于所述计算类型序列和所述每个计算类型对应的计算参数标识符,生成与所述第一参数值相匹配的计算图。示例性地,可以基于所述计算类型序列、逻辑控制参数对应的标识符和/或所述数值计算参数对应标识符,生成与所述第一参数值相匹配的计算图。
S230、基于生成的所述计算图,执行所述深度学习模型的模型运算。
此步骤中基于生成的计算图,执行模型运算的步骤与上述实施例中基于存储部件中存储的计算图执行模型运算的步骤相同,这里不再赘述。
将所述第一参数值和所述数值计算参数对应的标识符输入所述深度学习模型,能够准确地确定在逻辑控制参数的取值为第一参数值时,深度学习模型所执行的计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符,继而,利用确定的计算类型序列和每个计算类型对应的计算参数标识符,能够生成准确的计算图。
在生成所述计算图之后,上述深度学习模型的执行方法还可以包括:将生成的所述计算图,以及生成的所述计算图与所述第一参数值的匹配关系存入所述存储部件。
示例性地,可以将计算图、第一参数值以及第一参数值与计算图的匹配关系存储部件。这样,可以基于解析得到的第一参数值以及上述匹配关系,从存储部件中获取到深度学习模型所要执行的计算图。
另外,还可以计算第一参数值的签名,之后将计算图、第一参数值的签名以及第一参数值的签名与计算图的匹配关系存储部件。这样,可以首先基于解析得到的第一参数值确定其对应的签名,之后基于得到的签名以及上述匹配关系,从存储部件中获取到深度学习模型所要执行的计算图。
上述存储部件可以是终端设备中的缓存。在存储部件中未存储有与第一参数值相匹配的计算图时,生成与第一参数值相匹配的计算图,并将生成的计算图以及其与第一参数值的匹配关系存入存储部件中,能够在逻辑控制参数的取值再次为第一参数值时,直接从存储部件中获取对应的计算图,以执行对应的逻辑的计算序列,这样避免了重复进行算子转换,减少了转换开销,并且提高了模型运算的执行效率,还保证了深度学习模型能够执行不同的逻辑控制参数所对应的不同逻辑的计算序列,即实现了深度学习模型能够执行复杂逻辑的模型运算。
下面再通过一个实施例对本公开中的深度学习模型的执行方法进行说明。
该实施例中,将缓存作为存储部件,将函数f(v,c)作为深度学习模型,v表示数值计算参数的取值,c表示逻辑控制参数的取值,其不参与具体的数值运算。数值计算参数抽象得到的标识符为d。如图3所示,本实施例的深度学习模型的执行方法可以包括如下步骤:
步骤一、调用函数f(v,c)。
步骤二、对函数f(v,c)进行解析,确定逻辑控制参数c,并生成逻辑控制参数的签名sig(c),对数值计算参数进行抽象处理,得到标识符为d。
步骤三、在缓存中查找sig(c)。
步骤四、若在缓存中找到sig(c),则基于sig(c)与计算图的匹配关系,从缓存中获取到对应的计算图g。
这里,缓存中存储有逻辑控制参数c的签名sig(c)、sig(c)与计算图的匹配关系、以及计算图,因此,基于sig(c)与计算图的匹配关系可以查找到对应的计算图g。
另外,缓存中也可以直接存储逻辑控制参数c、逻辑控制参数c与计算图的匹配关系、以及计算图,这样可以基于逻辑控制参数c查找对应的计算图。
步骤五、将查找出来的计算图g以及数值计算参数v放入执行器,由执行器基于计算图g以及数值计算参数v执行模型运算。
步骤六、执行器返回模型运算的执行结果。
步骤七、若在缓存中找不到sig(c),则,调用函数f(d,c)。
步骤八、将逻辑控制参数c和数值计算参数抽象得到的标识符为d输入所述深度学习模型,记录函数所执行的计算类型序列,并基于计算类型序列生成计算图g。
这里,由于逻辑控制参数c是原样输入的,所以函数执行的逻辑完全由本次传入的逻辑控制参数c决定,例如分支或循环都被原地展开。这样就可以允许灵活动态的函数代码转换成计算图执行,同时获得图优化带来的好处。
步骤九、优化计算图g。
步骤十、将生成的计算图g以及数值计算参数v放入执行器,由执行器基于计算图g以及数值计算参数v执行模型运算,并将计算图g、逻辑控制参数c的签名sig(c)以及sig(c)与计算图的匹配关系存入缓存。
如果下次调用f(v,c)时的逻辑控制参数是完全一致的,那么可以取出缓存的计算图,直接执行,在一定程度上减少了算子转换次数,减少算子转换开销,并且提高模型运算的执行效率。
上述实施例在调用函数时,将函数转换为对应的计算图表示,同时将函数的逻辑控制参数和数值计算参数分离,分别用于计算图构建和模型运算的执行。相比于现有技术,模型解析和算子转换的开销更少,深度学习模型可以获得更多的全局优化,包括基于计算图变换的优化、传统编译优化、内存分配优化等;同时,还能够提升深度学习模型的计算速度,减小内存的占用。另外,深度学习模型的定义更为自然,能够执行复杂逻辑的计算序列。
例如,深度学习模型定义了新研究的损失loss函数,这个函数代码灵活动态,但执行效率不高,此时可以本实施例构建计算图,使得这个loss函数的执行效率提高,计算速度更快。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与深度学习模型的执行方法对应的深度学习模型的执行装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述深度学习模型的执行方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,为本公开实施例提供的一种深度学习模型的执行装置的架构示意图,该装置可以包括:
模型获取模块410,用于获取待执行的深度学习模型。
解析模块420,用于确定所述深度学习模型的逻辑控制参数的第一参数值。
执行模块430,用于在存储部件中存储有与所述第一参数值相匹配的所述深度学习模型的计算图的情况下,基于所述计算图执行所述深度学习模型的模型运算;其中,所述逻辑控制参数的不同的第一参数值对应不同的计算图。
在一些实施例中,所述解析模块420还用于确定所述深度学习模型的数值计算参数。
所述执行装置还包括计算图构建模块440,用于在存储部件中未存储有与所述第一参数值相匹配的计算图的情况下,基于所述第一参数值以及所述数值计算参数,生成与所述第一参数值相匹配的所述深度学习模型的计算图。
所述执行模块430还用于基于生成的所述计算图,执行所述深度学习模型的模型运算。
在一些实施例中,在生成所述计算图之后,所述计算图构建模块440还用于:将生成的所述计算图,以及生成的所述计算图与所述第一参数值的匹配关系存入所述存储部件。
在一些实施例中,所述计算图对应的计算图信息包括执行所述深度学习模型所要执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;
所述执行模块430在基于所述计算图执行所述模型运算时,用于:
基于所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
在一些实施例中,所述计算参数标识符包括所述深度学习模型的数值计算参数对应的第一标识符;所述执行模块430在基于所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算时,用于:
确定所述深度学习模型的数值计算参数对应的第二参数值;
基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
在一些实施例中,所述计算参数标识符还包括所述深度学习模型的逻辑控制参数对应的第二标识符;
所述执行模块430在基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算时,用于:
基于所述第二参数值、所述第一参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
在一些实施例中,所述计算图构建模块440在基于所述第一参数值以及所述数值计算参数,生成与所述第一参数值相匹配的所述深度学习模型的计算图时,用于:
将所述第一参数值和所述数值计算参数对应的第一标识符输入所述深度学习模型,基于所述深度学习模型的运算过程,确定所述深度学习模型所执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;所述计算参数标识符包括所述逻辑控制参数对应的第二标识符和/或所述数值计算参数对应的第一标识符;
基于所述计算类型序列和所述每个计算类型对应的计算参数标识符,生成与所述第一参数值相匹配的计算图。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图5所示,为本公开实施例提供的电子设备500的结构示意图,包括处理器51、存储器52、和总线53。其中,存储器52用于存储执行指令,包括内存521和外部存储器522;这里的内存521也称内存储器,用于暂时存放处理器51中的运算数据,以及与硬盘等外部存储器522交换的数据,处理器51通过内存521与外部存储器522进行数据交换,当电子设备500运行时,处理器51与存储器52之间通过总线53通信,使得处理器51在执行以下指令:
用于获取待执行的深度学习模型;确定所述深度学习模型的逻辑控制参数的第一参数值;在存储部件中存储有与所述第一参数值相匹配的所述深度学习模型的计算图的情况下,基于所述计算图执行所述深度学习模型的模型运算;其中,所述逻辑控制参数的不同的第一参数值匹配有不同的计算图。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的深度学习模型的执行方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例所提供的深度学习模型的执行方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的深度学习模型的执行方法的步骤,具体可参见上述方法实施例,在此不再赘述。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种深度学习模型的执行方法,其特征在于,包括:
获取待执行的深度学习模型;
确定所述深度学习模型的逻辑控制参数的第一参数值;
在存储部件中存储有与所述第一参数值相匹配的所述深度学习模型的计算图的情况下,基于所述计算图执行所述深度学习模型的模型运算;其中,所述逻辑控制参数的不同的第一参数值匹配有不同的计算图;所述计算图对应的计算图信息包括执行所述深度学习模型所要执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;所述计算参数标识符包括所述深度学习模型的数值计算参数对应的第一标识符;
基于所述计算图执行所述深度学习模型的模型运算,包括:
确定所述深度学习模型的数值计算参数对应的第二参数值;
基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
2.根据权利要求1所述的执行方法,其特征在于,还包括:
确定所述深度学习模型的数值计算参数;
在存储部件中未存储有与所述第一参数值相匹配的计算图的情况下,基于所述第一参数值以及所述数值计算参数,生成与所述第一参数值相匹配的所述深度学习模型的计算图;
基于生成的所述计算图,执行所述深度学习模型的模型运算。
3.根据权利要求2所述的执行方法,其特征在于,在生成所述计算图之后,还包括:将生成的所述计算图,以及生成的所述计算图与所述第一参数值的匹配关系存入所述存储部件。
4.根据权利要求1至3任一项所述的执行方法,其特征在于,基于所述计算图执行所述模型运算,包括:
基于所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
5.根据权利要求1所述的执行方法,其特征在于,所述计算参数标识符还包括所述深度学习模型的逻辑控制参数对应的第二标识符;
所述基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算,包括:
基于所述第二参数值、所述第一参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
6.根据权利要求2或3所述的执行方法,其特征在于,所述基于所述第一参数值以及所述数值计算参数,生成与所述第一参数值相匹配的所述深度学习模型的计算图,包括:
将所述第一参数值和所述数值计算参数对应的第一标识符输入所述深度学习模型,基于所述深度学习模型的运算过程,确定所述深度学习模型所执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;所述计算参数标识符包括所述逻辑控制参数对应的第二标识符和/或所述数值计算参数对应的第一标识符;
基于所述计算类型序列和所述每个计算类型对应的计算参数标识符,生成与所述第一参数值相匹配的计算图。
7.一种深度学习模型的执行装置,其特征在于,包括:
模型获取模块,用于获取待执行的深度学习模型;
解析模块,用于确定所述深度学习模型的逻辑控制参数的第一参数值;
执行模块,用于在存储部件中存储有与所述第一参数值相匹配的所述深度学习模型的计算图的情况下,基于所述计算图执行所述深度学习模型的模型运算;其中,所述逻辑控制参数的不同的第一参数值匹配有不同的计算图;所述计算图对应的计算图信息包括执行所述深度学习模型所要执行计算类型序列、以及所述计算类型序列中每个计算类型对应的计算参数标识符;所述计算参数标识符包括所述深度学习模型的数值计算参数对应的第一标识符;
执行模块,在基于所述计算图执行所述深度学习模型的模型运算时,用于:确定所述深度学习模型的数值计算参数对应的第二参数值;基于所述第二参数值、所述计算类型序列以及所述计算类型序列中每个计算类型对应的计算参数标识符,执行所述模型运算。
8.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至6任一项所述的深度学习模型的执行方法的步骤。
9.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至6任一项所述的深度学习模型的执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110177204.2A CN112862109B (zh) | 2021-02-09 | 2021-02-09 | 深度学习模型的执行方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110177204.2A CN112862109B (zh) | 2021-02-09 | 2021-02-09 | 深度学习模型的执行方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112862109A CN112862109A (zh) | 2021-05-28 |
CN112862109B true CN112862109B (zh) | 2024-05-24 |
Family
ID=75989749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110177204.2A Active CN112862109B (zh) | 2021-02-09 | 2021-02-09 | 深度学习模型的执行方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112862109B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633058A (zh) * | 2017-09-20 | 2018-01-26 | 武汉虹旭信息技术有限责任公司 | 一种基于深度学习的数据动态过滤系统及其方法 |
CN110766147A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 神经网络编译器架构及编译方法 |
CN111338635A (zh) * | 2020-02-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 计算图的图编译方法、装置、设备及存储介质 |
CN111475684A (zh) * | 2020-06-29 | 2020-07-31 | 北京一流科技有限公司 | 数据处理网络系统及其计算图生成方法 |
CN111667060A (zh) * | 2019-03-08 | 2020-09-15 | 上海寒武纪信息科技有限公司 | 深度学习算法的编译方法、装置及相关产品 |
CN111860758A (zh) * | 2020-04-07 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 一种深度学习模型的运行方法、装置、电子设备及介质 |
CN111967568A (zh) * | 2020-06-29 | 2020-11-20 | 北京百度网讯科技有限公司 | 深度学习模型的适配方法、装置及电子设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11443228B2 (en) * | 2018-06-21 | 2022-09-13 | International Business Machines Corporation | Job merging for machine and deep learning hyperparameter tuning |
CN111507476A (zh) * | 2019-01-31 | 2020-08-07 | 伊姆西Ip控股有限责任公司 | 部署机器学习模型的方法、设备和计算机程序产品 |
CN112306468A (zh) * | 2019-08-02 | 2021-02-02 | 伊姆西Ip控股有限责任公司 | 用于处理机器学习模型的方法、设备和计算机程序产品 |
-
2021
- 2021-02-09 CN CN202110177204.2A patent/CN112862109B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633058A (zh) * | 2017-09-20 | 2018-01-26 | 武汉虹旭信息技术有限责任公司 | 一种基于深度学习的数据动态过滤系统及其方法 |
CN110766147A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 神经网络编译器架构及编译方法 |
CN111667060A (zh) * | 2019-03-08 | 2020-09-15 | 上海寒武纪信息科技有限公司 | 深度学习算法的编译方法、装置及相关产品 |
CN111338635A (zh) * | 2020-02-20 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 计算图的图编译方法、装置、设备及存储介质 |
CN111860758A (zh) * | 2020-04-07 | 2020-10-30 | 北京嘀嘀无限科技发展有限公司 | 一种深度学习模型的运行方法、装置、电子设备及介质 |
CN111475684A (zh) * | 2020-06-29 | 2020-07-31 | 北京一流科技有限公司 | 数据处理网络系统及其计算图生成方法 |
CN111967568A (zh) * | 2020-06-29 | 2020-11-20 | 北京百度网讯科技有限公司 | 深度学习模型的适配方法、装置及电子设备 |
Non-Patent Citations (2)
Title |
---|
一种运算和数据协同优化的深度学习编译框架;吴林阳;杜伟健;陈小兵;庄毅敏;;高技术通讯(02);全文 * |
基于TensorFlow2.0的图像分类算法研究;刘晓;齐德昱;曹世轩;;现代计算机(14);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112862109A (zh) | 2021-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107957989B (zh) | 基于集群的词向量处理方法、装置以及设备 | |
CN113703775B (zh) | 一种编译方法、装置、设备及存储介质 | |
US20220156050A1 (en) | Generating a synchronous digital circuit from a source code construct defining a function call | |
CN108364068B (zh) | 基于有向图的深度学习神经网络构建方法和机器人系统 | |
CN111382347A (zh) | 一种对象特征的处理和信息推送方法、装置和设备 | |
US20140052433A1 (en) | Automatically extracting a model for the behavior of a mobile application | |
CN111651137B (zh) | 排序方法、装置、电子装置以及计算机设备 | |
CN112199416A (zh) | 数据规则生成方法及装置 | |
CN110990008B (zh) | 更新页面的方法、装置、存储介质以及电子设备 | |
CN116204847A (zh) | 一种计算图优化方法、装置及设备 | |
CN110020333A (zh) | 数据分析方法及装置、电子设备、存储介质 | |
CN112862109B (zh) | 深度学习模型的执行方法、装置、电子设备及存储介质 | |
CN110728359B (zh) | 搜索模型结构的方法、装置、设备和存储介质 | |
CN116472533A (zh) | 人工智能ai模型的开发方法和装置 | |
CN116629330A (zh) | 一种算子检测方法、装置以及计算机设备 | |
CN116579380A (zh) | 一种数据处理方法以及相关设备 | |
CN113887518A (zh) | 一种行为检测的方法、装置、电子设备及存储介质 | |
CN115204395A (zh) | 数据的处理方法、装置及设备 | |
CN114841664A (zh) | 一种多任务处理顺序确定方法及装置 | |
CN111325343B (zh) | 神经网络的确定、目标检测、智能行驶控制方法及装置 | |
CN113705795A (zh) | 卷积处理方法、装置、卷积神经网络加速器和存储介质 | |
CN113779311A (zh) | 一种数据处理的方法、装置和存储介质 | |
CN110209397B (zh) | 一种数据处理方法、装置及系统 | |
CN114356512A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN114945898A (zh) | 用于根据TensorFlow图构建编译器中间表示的方法和系统 |
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 |