CN111552477B - 数据处理方法和装置 - Google Patents
数据处理方法和装置 Download PDFInfo
- Publication number
- CN111552477B CN111552477B CN202010362549.0A CN202010362549A CN111552477B CN 111552477 B CN111552477 B CN 111552477B CN 202010362549 A CN202010362549 A CN 202010362549A CN 111552477 B CN111552477 B CN 111552477B
- Authority
- CN
- China
- Prior art keywords
- expression
- intermediate representation
- item
- polynomial
- type
- 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
- 238000003672 processing method Methods 0.000 title abstract description 13
- 230000014509 gene expression Effects 0.000 claims abstract description 438
- 238000013136 deep learning model Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 105
- 238000000034 method Methods 0.000 claims description 56
- 238000005457 optimization Methods 0.000 claims description 47
- 238000006243 chemical reaction Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 3
- 101100129590 Schizosaccharomyces pombe (strain 972 / ATCC 24843) mcp5 gene Proteins 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- 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/10—Interfaces, programming languages or software development kits, e.g. for simulating neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本公开实施例提供一种数据处理方法和装置,获取深度学习模型的中间表示;基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,其中,所述优化后的所述中间表示用于得到硬件设备可执行的目标代码。
Description
技术领域
本公开涉及深度学习技术领域,尤其涉及数据处理方法和装置。
背景技术
在深度学习技术中,编译器可以将深度学习模型的源代码转换为硬件通用的中间表示,中间表示可以表达源代码的数据结构以及相关算法。为了提高代码运行性能,需要对中间表示进行优化处理。
发明内容
本公开提供一种数据处理方法和装置。
根据本公开实施例的第一方面,提供一种数据处理方法,所述方法包括:获取深度学习模型的中间表示;基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,其中,所述优化后的所述中间表示用于得到硬件设备可执行的目标代码。
在一些实施例中,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,包括:调用第一处理模块,以通过所述第一处理模块基于单项式对所述中间表示进行优化处理;和/或调用第二处理模块,以通过所述第二处理模块基于多项式对所述中间表示进行优化处理。
在一些实施例中,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,包括:对所述中间表示进行转换,得到基于单项式和多项式的转换表示,并对转换表示进行化简,得到优化后的中间表示。
在一些实施例中,所述对所述中间表示进行优化处理,包括:对所述中间表示的第一表达式树进行优化处理。
在一些实施例中,所述对所述中间表示的第一表达式树进行优化处理,包括:按照从下往上的顺序,依次对所述中间表示的第一表达式树中的各个子树进行优化处理,得到所述子树的优化结果;基于所述第一表达式树的每个子树的优化结果,得到优化后的所述中间表示。
在一些实施例中,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,包括:基于所述中间表示中的每个表达项的类型,对所述中间表示进行转换处理,得到转换表示,其中,所述类型为单项式或多项式;对所述转换表示进行优化处理,得到优化后的所述中间表示。
在一些实施例中,所述基于所述中间表示中的每个表达项的类型,对所述中间表示进行转换处理,得到转换表示,包括:在所述表达项的类型为单项式的情况下,基于类模板将所述表达项转换为单项式;和/或在所述表达项的类型为多项式的情况下,将所述表达项转换为第二表达式树。
在一些实施例中,所述第二表达式树中除叶子节点之外的每个左节点为操作符,所述第二表达式树中的每个右节点为单项式。
在一些实施例中,所述表达项中的常数项在所述第二表达式树中所在的节点为距离根节点最近的右节点。
在一些实施例中,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,包括:确定所述中间表示中处于同一层级的多个表达项中每个表达项的类型;基于所述多个表达项中每个表达项的类型,对所述多个表达项进行优化处理。
在一些实施例中,所述基于所述多个表达项中每个表达项的类型,对所述多个表达项进行优化处理,包括:在所述多个表达项的至少两个表达项相匹配的情况下,对所述至少两个待优化项进行基于单项式的合并处理;和/或在所述多个表达项的至少两个表达项不匹配的情况下,基于所述至少两个表达项进行基于多项式的合并处理。
在一些实施例中,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,包括:在所述多个表达项中的至少两个表达项的类型均为单项式并且所述至少两个表达项匹配的情况下,将所述至少两个表达项合并为单项式类型的表达项;和/或在所述多个表达项中的第一表达项的类型为多项式并且所述第一表达项与第二表达项匹配的情况下,将所述第一表达项和所述第二表达项进行基于单项式的合并,得到多项式类型的表达项。
在一些实施例中,所述单项式最多仅包括至少两个元素之间的乘法运算;和/或所述多项式包括至少两个单项式之间的加法运算。
根据本公开实施例的第二方面,提供一种数据处理方法,包括:获取目标代码和待处理图像;对所述待处理图像执行所述目标代码的处理,得到图像处理结果;其中,所述目标代码是基于本公开第一方面的任一实施例所述的方法得到的优化后的中间表示得到的。
根据本公开实施例的第三方面,提供一种数据处理装置,所述装置包括:第一获取模块,用于获取深度学习模型的中间表示;第一处理模块,用于基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,其中,所述优化后的所述中间表示用于得到硬件设备可执行的目标代码。
在一些实施例中,所述第一处理模块用于:调用第一处理模块,以通过所述第一处理模块基于单项式对所述中间表示进行优化处理;和/或调用第二处理模块,以通过所述第二处理模块基于多项式对所述中间表示进行优化处理。
在一些实施例中,所述第一处理模块用于:对所述中间表示进行转换,得到基于单项式和多项式的转换表示,并对转换表示进行化简,得到优化后的中间表示。
在一些实施例中,所述第一处理模块用于:对所述中间表示的第一表达式树进行优化处理。
在一些实施例中,所述第一处理模块包括:第一处理单元,用于按照从下往上的顺序,依次对所述中间表示的第一表达式树中的各个子树进行优化处理,得到所述子树的优化结果;第二处理单元,用于基于所述第一表达式树的每个子树的优化结果,得到优化后的所述中间表示。
在一些实施例中,所述第一处理模块包括:转换单元,用于基于所述中间表示中的每个表达项的类型,对所述中间表示进行转换处理,得到转换表示,其中,所述类型为单项式或多项式;第三处理单元,用于对所述转换表示进行优化处理,得到优化后的所述中间表示。
在一些实施例中,所述转换单元用于:在所述表达项的类型为单项式的情况下,基于类模板将所述表达项转换为单项式;和/或在所述表达项的类型为多项式的情况下,将所述表达项转换为第二表达式树。
在一些实施例中,所述第二表达式树中除叶子节点之外的每个左节点为操作符,所述第二表达式树中的每个右节点为单项式。
在一些实施例中,所述表达项中的常数项在所述第二表达式树中所在的节点为距离根节点最近的右节点。
在一些实施例中,所述第一处理模块包括:确定单元,用于确定所述中间表示中处于同一层级的多个表达项中每个表达项的类型;第四处理单元,用于基于所述多个表达项中每个表达项的类型,对所述多个表达项进行优化处理。
在一些实施例中,所述第四处理单元用于:在所述多个表达项的至少两个表达项相匹配的情况下,对所述至少两个待优化项进行基于单项式的合并处理;和/或在所述多个表达项的至少两个表达项不匹配的情况下,基于所述至少两个表达项进行基于多项式的合并处理。
在一些实施例中,所述第一处理模块用于:在所述多个表达项中的至少两个表达项的类型均为单项式并且所述至少两个表达项匹配的情况下,将所述至少两个表达项合并为单项式类型的表达项;和/或在所述多个表达项中的第一表达项的类型为多项式并且所述第一表达项与第二表达项匹配的情况下,将所述第一表达项和所述第二表达项进行基于单项式的合并,得到多项式类型的表达项。
在一些实施例中,所述单项式最多仅包括至少两个元素之间的乘法运算;和/或所述多项式包括至少两个单项式之间的加法运算。
根据本公开实施例的第四方面,提供一种数据处理装置,包括:第二获取模块,用于获取目标代码和待处理图像;第二处理模块,用于对所述待处理图像执行所述目标代码的处理,得到图像处理结果;其中,所述目标代码是基于本公开第三方面的任一实施例所述的装置得到的优化后的中间表示得到的。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。
根据本公开实施例的第六方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
在一些实施例中,所述计算机设备为编译器。
根据本公开实施例,基于单项式和多项式中的至少一种,对深度学习模型的中间表示进行优化处理,并将优化后的所述中间表示用于得到计算机程序代码,适用于对各种类型的中间表示进行优化处理,提高了表达式优化处理的通用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1是本公开实施例的中间表示的示意图。
图2是本公开实施例的数据处理方法的流程图。
图3A至图3C是本公开实施例的单项式运算过程示意图。
图4是本公开另一些实施例的中间表示的示意图。
图5A至图5C是本公开实施例的多项式类型的中间表示的化简过程示意图。
图6是本公开实施例的单项式类型的中间表示的化简过程示意图。
图7是本公开实施例的表达式展开过程的示意图。
图8是本公开另一实施例的数据处理方法的流程图。
图9是本公开实施例的数据处理装置的框图。
图10是本公开另一实施例的数据处理装置的框图。
图11是本公开实施例的计算机设备的示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。
本公开实施例的技术方案可以由编译器或者其他具有代码解析和优化功能的设备执行,下面以编译器为例进行描述,但本公开实施例对此不做限定。
编译器可以将高级语言(例如,C语言,Java语言等)转换为硬件通用的中间表示,中间表示可以表达源程序的数据结构以及相关算法,然后,可以对中间表示进行编译,得到硬件可执行的目标代码。
一个好的中间表示,既要拥有准确无损地表达源程序信息的能力,同时也要方便进行变换。在变换的过程中,中间表示会进行多次操作,从而变得非常复杂。因此,为了提高编译得到的目标代码的运行性能,常常需要对中间表示进行优化处理。然而,在实际应用过程中,中间表示的种类千变万化,并且对中间表示进行优化处理的难度会随着中间表示中表达项规模的增长指数级上升。一种传统的中间表示优化处理方法是采用优化模板对中间表示进行化简,这种方法会预先设定几种表达项的操作模版,如果表达项之间的操作符合该模版则进行相应的优化处理。例如,模版为(x%(c*s))÷c=(x÷c)%s,则会将满足左边的表达项操作方式的中间表示优化处理为右边的表达项。然而,这种优化处理方式不适合扩展,通用性较差。
基于此,本公开实施例提供一种数据处理方法,基于单项式和多项式进行中间表示的优化。中间表示可以用计算图或其他类型的数据结构表示,例如,如图1所示的树型结构,称为表达式树。一个表达式树中可以包括至少一个节点,其中,该表达式树的每个叶子节点均为所述中间表示中的一个单项式;该第一表达式树的每个非叶子节点均为操作符。其中,每个单项式均可以是常数项,如图中的“2”、“3”、“6”、“4”所示,也可以是非常数项,例如,变量a、变量b*c等。所述操作符可以是一元操作符,例如,求非逻辑操作符,也可以是二元操作符,例如图中的加法操作符(“+”)、乘法运算操作符(“*”),还可以是三元以上的操作符。应当说明的是,上述表达式树仅为中间表示的一种可能的形式,本公开实施例中的中间表示还可以采用其他数据结构来表示,此处不再赘述。
如图2所示,本公开实施例提供的数据处理方法包括:
步骤201:获取深度学习模型的中间表示;
步骤202:基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,其中,所述优化后的所述中间表示用于得到硬件设备可执行的目标代码。
本公开实施例中,在编译过程中对中间表示进行优化处理,从而优化编译得到的代码的运行性能。
在步骤201中,深度学习模型可以是神经网络模型,例如卷积神经网络(Convolutional Neural Networks,CNN)、递归神经网络、长短期记忆网络(Long Short-Term Memory,LSTM)等,也可以是其他类型的深度学习模型,本公开实施例对此不做限定。
在本公开实施例中,所述中间表示可以包括至少一个表达项,可以确定每个表达项的类型,即确定该表达项是属于单项式类型的表达项还是多项式类型的表达项。
在一些实施例中,可以通过表达项中包含的运算类型来区分单项式和多项式。例如,不包含加法运算的表达项属于单项式,或者说,最多仅包含乘法运算的表达项属于单项式,其中,这里的元素可以包括常量、变量等等,数据类型可以是整数类型、浮点数类型和布尔类型中的至少任意一种类型。例如,单个元素属于单项式,元素之间的乘法运算属于单项式,这里除法运算和指数运算都可以视为特殊的乘法运算,例如,a÷b可以视为a*b-1。多项式包括至少两个单项式的加法运算。此外,多项式也可能进一步包括乘法运算。减法运算可以视为特殊的加法运算,例如,a-b可以视为a+(-b)。在一些可选例子中,单项式和多项式可以通过是否包含加法运算来区分,但本公开实施例不限于此。
应理解,本文中的“一个表达项属于多项式类型”可以指该表达项为多项式的至少一部分,例如,该表达项本身就是一个多项式,再例如,该表达项和至少一个其他表达项构成多项式。例如,中间表示(a*b3+1)(a+1)+2中包括三个表达项,即,多项式“a*b3+1”、多项式“a+1”以及单项式“2”。
在步骤202中,可以基于中间表示中各个表达项的类型,对所述中间表示进行优化处理,例如,进行同类项合并。
在一些实施例中,所述基于单项式对所述中间表示进行优化处理,包括调用第一处理模块,以通过所述第一处理模块基于单项式对所述中间表示进行优化处理。在另一些实施例中,所述基于多项式对所述中间表示进行优化处理,包括调用第二处理模块,以通过所述第二处理模块基于多项式对所述中间表示进行优化处理。所述第一处理模块和第二处理模块均可以是预先存储的软件功能模块。在进行优化处理时,可以基于中间表示中各个表达项的类型,调用对应的处理模块对所述中间表示进行优化处理。
在一些实施例中,也可以将中间表示划分为至少一个子表示,每个子表示包含至少一个表达项,可以通过对中间表示的各个子表示进行优化处理,得到优化后的中间表示。例如,可以基于子表示包含的表达项,确定子表示的类型,并基于子表示的类型,对子表示进行优化处理。
在一些实施例中,还可以基于中间表示中各个表达项的类型,进一步结合其他信息,对所述中间表示进行优化处理。
在一些可选例子中,所述其他信息可以包括所述中间表示中各个表达项的优先级信息,所述表达项的优先级信息用于表示所述表达项进行运算的顺序。例如,所述优先级信息可以基于所述中间表示的拓扑结构确定。
所述中间表示可以是包括多个节点的数据结构,例如,树型数据结构(称为第一表达式树)。在第一表达式树中,每个叶子节点存储一个单项式,每个非叶子节点用于存储一个操作符,同一个非叶子节点的各个子节点的单项式可基于该非叶子节点对应的操作符进行运算。所述第一表达式树中越靠近叶子节点的子树中各个表达项的运算优先级越高。
在一些实施例中,其他信息也可以是其他类型的信息,本公开实施例对此不做限定。
在一些实施例中,在所述中间表示通过第一表达式树表达的情况下,可以通过对所述中间表示的第一表达式树进行优化处理,得到所述中间表示的优化处理结果。
例如,可以按照从下往上的顺序,依次对所述中间表示的第一表达式树中的各个子树进行优化处理,得到所述子树的优化结果;基于所述第一表达式树的每个子树的优化结果,得到优化后的所述中间表示。
在一些实施例中,所述优化处理可以包括对所述中间表示中匹配的至少两个表达项进行化简,例如合并。例如,将图1所示的中间表示(2+3)*(6-4)合并为常数项“10”。
在一些实施例中,两个属于单项式的表达项匹配可以是两个单项式包括的变量类型相同,其中,在一个可选例子中,所述变量类型相同可以是变量相同以及变量的指数相同。例如,表达项“a”与表达项“2a”匹配,表达项“a”与表达项“b”和“a2”均不匹配。在另一个可选例子中,任意两个常数项互相匹配。
具体来说,可以基于所述中间表示中的每个表达项的类型,对所述中间表示进行转换处理,得到转换表示,其中,所述类型为单项式或多项式;对所述转换表示进行优化处理,得到优化后的所述中间表示。
所述转换处理可以将所述中间表示转换为数据结构或者数据类型,例如,所述数据结构可以是特定形式的表达式树;又例如,所述数据结构可以是类。在一些实施例中,在所述表达项的类型为单项式的情况下,可以基于类模板将所述表达项转换为单项式。其中,所述类模板中可以包括表达项中常量和变量的数据类型,例如,整型(int)、浮点型(float)等,变量名,系数以及变量的指数等信息中的部分或全部。其中,T为数据类型,val表示单项式的系数,map用来存放表达项。例如,a2b3可以表示为一个map类型,即{a:2,b:3},“:”表示指数运算,“,”表示乘积运算。
在一些实施例中,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,包括:对所述中间表示进行转换,得到基于单项式和多项式的转换表示,并对转换表示进行化简,得到优化后的中间表示。
然后,可以对所述转换表示进行优化处理。具体来说,可以对所述转换表示中的至少两个转换表示进行合并处理。在基于类模板将所述表达项转换为单项式的情况下,可以根据至少两个表达项中的变量以及所述变量的指数和系数,对所述至少两个表达项进行合并处理。在所述至少两个表达项的类型均为单项式(Mon)的情况下,对所述至少两个表达项进行乘法运算时,将所述至少两个表达项中的系数相乘,相应变量的指数进行加法运算或者减法运算,图3A示出了单项式num1与单项式num2的优化处理过程。其中,单项式num1的系数val为5.0,变量为{a:2,b:3},单项式num2的系数val为2.0,变量为{a:1,c:2}。运算结果res的系数val为2.5,变量为{a:1,b:3,c:-2}。应当说明的是,单项式中的常量和变量还可以是其他类型,例如,整数类型或者布尔类型。
在所述至少两个类表达项均为单项式(Mon)的情况下,对所述至少两个类表达项进行加法运算时,如果两个单项式的变量部分可以匹配,就直接对系数进行加法运算或者减法运算,仍然产生一个单项式,如图3B所示;否则产生一个多项式,如图3C所示。
在另一些实施例中,在所述表达项的类型为多项式的情况下,可以将所述表达项转换为第二表达式树,再对所述第二表达式树进行优化处理。其中,所述第二表达式树中除叶子节点之外的每个左节点为操作符,所述第二表达式树中的每个右节点为单项式。
第二表达式树的结构如图4所示,其中,Mon表示单项式,“+”表示加法运算符,即,通过一组二元运算操作符(Binary)将单项式连接以表示多项式(Poly),该结构称为多项式树。在图4所示的实施例中,二元运算操作符为加法运算符,本领域技术人员可以理解,这里的部分加法运算符也可以替换为减法、乘法、平方、开方等运算符中的至少一种。
在这种情况下,可以将所述第二表达式树中每个节点的右子节点与该节点的左子树中每个叶子节点尝试进行优化处理。进一步地,可以按照特定顺序执行上述操作。所述特定顺序基于所述第二表达式树中每个节点的位置确定。可选地,从根节点开始,按照由上到下的顺序,依次将所述第二表达式树中每个节点的右子节点与该节点的左子树中每个叶子节点尝试进行优化处理;其中,“上”是指靠近根节点的方向,“下”是指远离根节点的方向。
如果一个多项式中存在变量相同的单项式,则所述多项式可以进行优化处理,所述多项式中变量相同的单项式互为匹配项。在对两个表达项进行优化处理时,如果所述两个表达项中的第一表达项的类型为多项式,所述两个表达项中的第二表达项的类型为单项式,则可以在第一表达项中的每个单项式中查找所述第二表达项的匹配项。如果查找到,则第一表达项与第二表达项匹配,从而可以对第一表达项与第二表达项进行优化处理。否则,第一表达项与第二表达项不匹配。
如果所述两个表达项中的第一表达项和第二表达项均为多项式,则对于第二表达项中的每个第二单项式,可以在第一表达项中的每个第一单项式中查找所述第二单项式的匹配项。如果查找到,则第一表达项与第二表达项匹配,从而可以对第一表达项与第二表达项进行优化处理。否则,第一表达项与第二表达项不匹配。
在进行加法运算操作时,可以将一个节点(称为待处理节点)的右子节点(称为第一待处理节点)与该节点的左子树中与所述第一待处理节点变量相同的叶子节点(称为第二待处理节点)的系数进行相加或者相减。相加或者相减的结果可以存入所述第二待处理节点中。
如图5A所示,是第一表达项与第二表达项匹配的情况的示意图。左侧的图为优化前的中间表示,第二表达项为单项式“a”,第一表达项为多项式“3+a+b+ab”。在进行优化处理时,可以分别从第一表达项中的每个单项式“3”、“a”、“b”和“ab”中查找第二表达项的匹配项。例如,可以按照从上往下的顺序查找。首先,确定单项式“3”是否为第二表达项的匹配项,由于单项式“3”不是第二表达项的匹配项,则继续查找,再确定单项式“a”是否为第二表达项的匹配项。由于单项式“a”是第二表达项的匹配项,因此,停止查找。然后,将第二表达项与第一表达项中单项式“a”的系数相加,优化后的中间表示为“3+2a+b+ab”,如右图所示。
若不存在与所述第一待处理节点变量相同的第二待处理节点,则构建一个新的节点,将所述待处理节点所在的子树存储到所述新的节点中。如图5B所示,是是第一表达项与第二表达项不匹配的情况的示意图。左侧的图为优化前的中间表示,第二表达项为单项式“a*b”,第一表达项为多项式“3+a+b”。在进行优化处理时,可以分别从第一表达项中的每个单项式“3”、“a”和“b”中查找第二表达项的匹配项。例如,可以按照从上到下的顺序依次确定单项式“3”、单项式“a”和单项式“b”是否为第二表达项的匹配项。由于这三个单项式均不是第二表达项的匹配项,因此,第一表达项与第二表达项不匹配。
在进行乘法运算操作时,可以遍历各个第二待处理节点,将第一待处理节点对应的单项式分别与每个第二叶子节点对应的单项式进行相乘或者相除。如图5C所示,第一表达项为“3+a+b”,第二表达项为“c”,则分别将c与第一表达项中的单项式“3”、单项式“a”和单项式“b”相乘,对应得到单项式“3*c”、单项式“a*c”和单项式“b*c”。
特别地,所述表达项中的常数项在所述第二表达式树中所在的节点为距离根节点最近的右节点。这样,在进行优化处理时,只需要将常数项与距离根节点最近的右节点进行优化处理,无需在所有叶子节点中查找常数项,提高了优化处理效率。如图5B所示,将图中左侧的中间表示转换为右侧的中间表示,从而使常数项“3”位于根节点的右子节点。
在一些实施例中,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,包括:确定所述中间表示中处于同一层级的多个表达项中每个表达项的类型;基于所述多个表达项中每个表达项的类型,对所述多个表达项进行优化处理。
以所述中间表示为表达式树为例,所述表达式树中的同一子树中的各个表达项为处于同一层级的表达项。因此,可以对同一子树中的各个表达项进行优化处理。
在一些实施例中,在所述多个表达项的至少两个表达项相匹配的情况下,可以对所述至少两个待优化项进行基于单项式的合并处理。在至少两个待优化项之间的运算为加法运算的情况下,所述基于单项式的合并,即,将所述至少两个待优化项中相同变量的系数相加。在至少两个待优化项之间的运算为乘法运算的情况下,所述基于单项式的合并,即,将所述至少两个待优化项的系数相乘,相同变量的指数相加。
在所述多个表达项中的至少两个表达项的类型均为单项式并且所述至少两个表达项匹配的情况下,将所述至少两个表达项合并为单项式类型的表达项。如图6所示,是本公开一些实施例的两个单项式类型的表达项的化简过程示意图。其中,“2”、“3”、“6”和“4”均为单项式类型的表达项。先对以“+”为根节点的子树进行合并,得到一个单项式类型的表达项“5”,接着再对以“-”为根节点的子树进行合并,得到一个单项式类型的表达项“2”,最后,对以“*”为根节点的子树进行合并,得到一个单项式类型的表达项“10”。
在所述多个表达项中的第一表达项的类型为多项式并且所述第一表达项与第二表达项匹配的情况下,将所述第一表达项和所述第二表达项进行基于单项式的合并,得到多项式类型的表达项。即,将单项式与多项式中的每一个单项式尝试进行匹配。例如,在图5A中,根节点的左子树对应的表达项(即第二表达项)为多项式类型的表达项,根节点的右节点(即第一表达项)为单项式类型的表达项,则将所述第一表达项和所述第二表达项进行基于单项式的合并。在所述第一表达项和所述第二表达项进行加法运算的情况下,在第一表达项中的各个单项式中查找与第二表达项变量相同的目标单项式,将第二表达项的系数与目标单项式进行相加或者相减。在所述第一表达项和所述第二表达项进行乘法运算的情况下,将第二表达项分别与第一表达项中的各个单项式的系数进行相乘,相同变量的指数进行相加。
在所述多个表达项中的第一表达项和第二表达项的类型均为多项式的情况下,对于两个表达项之间的加法操作,可以遍历第二表达项,对第二表达项中的每个单项式,分别按照第一表达项的类型为多项式且第二表达项的类型为单项式的情况下的优化方式进行处理,将第二表达项中的每个单项式加入到第一表达项中,得到最终的优化结果。
在所述多个表达项中的第一表达项和第二表达项的类型均为多项式的情况下,对于两个表达项之间的乘法操作,不进行展开处理,即返回结果依旧为两个表达项的乘积。
在另一些实施例中,在所述多个表达项的至少两个表达项不匹配的情况下,可以基于所述至少两个表达项进行基于多项式的合并处理。即,将所述两个表达项展开成若干项单项式相加的形式。进一步地,如果包括常数项,则可以构建新的节点以保证常数项距离根节点最近。
在得到中间表示的化简结果之后,还可以对所述第一表达式树中的子树进行抽象化处理,即,用一个变量来代替所述子树对应的多项式。例如,对于表达式(3*a+2)*(b+1)*2对应的第一表达式树,可以将多项式(3*a+2)*(b+1)用一个变量来代替,例如,该变量可记为Varl{Exprptr},Varl表示所述变量的变量名,Exprptr表示所述多项式的具体形式。从而上述表达式可以记为2*Varl{Exprptr}。
在获取最终化简结果时,可以基于优化后的转换表示,得到优化后的中间表示。例如,可以对所述中间表示中经过抽象化处理的多项式进行展开。如图7所示,是本公开实施例的表达式展开过程的示意图,如图所示,将Varl{Exprptr}展开成了多项式(3*a+2)*(b+1)对应的子树。如果一个中间表示经过多次抽象化处理,则可以按照特定顺序,依次对每次抽象化处理的结果进行展开。所述特定顺序可以是从根节点到叶子节点的顺序。
如图8所示,是本公开另一实施例的数据处理方法的流程图,所述方法可包括:
步骤801:获取目标代码和待处理图像;
步骤802:对所述待处理图像执行所述目标代码的处理,得到图像处理结果;
其中,所述目标代码是基于前述任一实施例所述的方法得到的优化后的中间表示得到的。
本公开实施例中的方法可由图形处理器(Graphics Processing Unit,GPU)执行。所述目标代码对所述待处理图像进行的处理包括但不限于卷积处理、分类处理和灰度处理中的至少任一。通过对中间表示进行优化,能够提高所述目标代码的运行效率,从而提高图像处理效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
如图9所示,本公开还提供一种图像关联装置,所述装置包括:
第一获取模块901,用于获取深度学习模型的中间表示;
第一处理模块902,用于基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,其中,所述优化后的所述中间表示用于得到硬件设备可执行的目标代码。
在一些实施例中,所述第一处理模块用于:调用第一处理模块,以通过所述第一处理模块基于单项式对所述中间表示进行优化处理;和/或调用第二处理模块,以通过所述第二处理模块基于多项式对所述中间表示进行优化处理。
在一些实施例中,所述第一处理模块用于:对所述中间表示进行转换,得到基于单项式和多项式的转换表示,并对转换表示进行化简,得到优化后的中间表示。
在一些实施例中,所述第一处理模块用于:对所述中间表示的第一表达式树进行优化处理。
在一些实施例中,所述第一处理模块包括:第一处理单元,用于按照从下往上的顺序,依次对所述中间表示的第一表达式树中的各个子树进行优化处理,得到所述子树的优化结果;第二处理单元,用于基于所述第一表达式树的每个子树的优化结果,得到优化后的所述中间表示。
在一些实施例中,所述第一处理模块包括:转换单元,用于基于所述中间表示中的每个表达项的类型,对所述中间表示进行转换处理,得到转换表示,其中,所述类型为单项式或多项式;第三处理单元,用于对所述转换表示进行优化处理,得到优化后的所述中间表示。
在一些实施例中,所述转换单元用于:在所述表达项的类型为单项式的情况下,基于类模板将所述表达项转换为单项式;和/或在所述表达项的类型为多项式的情况下,将所述表达项转换为第二表达式树。
在一些实施例中,所述第二表达式树中除叶子节点之外的每个左节点为操作符,所述第二表达式树中的每个右节点为单项式。
在一些实施例中,所述表达项中的常数项在所述第二表达式树中所在的节点为距离根节点最近的右节点。
在一些实施例中,所述第一处理模块包括:确定单元,用于确定所述中间表示中处于同一层级的多个表达项中每个表达项的类型;第四处理单元,用于基于所述多个表达项中每个表达项的类型,对所述多个表达项进行优化处理。
在一些实施例中,所述第四处理单元用于:在所述多个表达项的至少两个表达项相匹配的情况下,对所述至少两个待优化项进行基于单项式的合并处理;和/或在所述多个表达项的至少两个表达项不匹配的情况下,基于所述至少两个表达项进行基于多项式的合并处理。
在一些实施例中,所述第一处理模块用于:在所述多个表达项中的至少两个表达项的类型均为单项式并且所述至少两个表达项匹配的情况下,将所述至少两个表达项合并为单项式类型的表达项;和/或在所述多个表达项中的第一表达项的类型为多项式并且所述第一表达项与第二表达项匹配的情况下,将所述第一表达项和所述第二表达项进行基于单项式的合并,得到多项式类型的表达项。
在一些实施例中,所述单项式最多仅包括至少两个元素之间的乘法运算;和/或所述多项式包括至少两个单项式之间的加法运算。
如图10所示,是本公开另一实施例的数据处理装置的框图。所述装置可包括:
第二获取模块1001,用于获取目标代码和待处理图像;
第二处理模块1002,用于对所述待处理图像执行所述目标代码的处理,得到图像处理结果;
其中,所述目标代码是基于本公开前述任一实施例所述的装置得到的优化后的中间表示得到的。
在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上文方法实施例描述的方法,其具体实现可以参照上文方法实施例的描述,为了简洁,这里不再赘述。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本公开实施例还提供一种源码解释器,所述源码解释器用于执行任一实施例所述的方法。
本公开实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一实施例所述的方法。
在一些实施例中,所述计算机设备为编译器。
图11示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1101、存储器1102、输入/输出接口1103、通信接口1104和总线1105。其中处理器1101、存储器1102、输入/输出接口1103和通信接口1104通过总线1105实现彼此之间在设备内部的通信连接。
处理器1101可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1102可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1102可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1102中,并由处理器1101来调用执行。
输入/输出接口1103用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1104用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1105包括一通路,在设备的各个组件(例如处理器1101、存储器1102、输入/输出接口1103和通信接口1104)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1101、存储器1102、输入/输出接口1103、通信接口1104和总线1105,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本公开实施例还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法包括:
获取深度学习模型的中间表示;
基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,其中,所述优化后的所述中间表示用于得到硬件设备可执行的目标代码;
所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,包括:
确定所述中间表示中处于同一层级的多个表达项中每个表达项的类型;
在所述多个表达项中的至少两个表达项的类型均为单项式并且所述至少两个表达项匹配的情况下,将所述至少两个表达项合并为单项式类型的表达项;和/或
在所述多个表达项中的第一表达项的类型为多项式并且所述第一表达项与第二表达项匹配的情况下,将所述第一表达项和所述第二表达项进行基于单项式的合并,得到多项式类型的表达项。
2.根据权利要求1所述的方法,其特征在于,所述对所述中间表示进行优化处理,包括:
对所述中间表示的第一表达式树进行优化处理。
3.根据权利要求2所述的方法,其特征在于,所述对所述中间表示的第一表达式树进行优化处理,包括:
按照从下往上的顺序,依次对所述中间表示的第一表达式树中的各个子树进行优化处理,得到所述子树的优化结果;
基于所述第一表达式树的每个子树的优化结果,得到优化后的所述中间表示。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,包括:
基于所述中间表示中的每个表达项的类型,对所述中间表示进行转换处理,得到转换表示,其中,所述类型为单项式或多项式;
对所述转换表示进行优化处理,得到优化后的所述中间表示。
5.根据权利要求4所述的方法,其特征在于,所述基于所述中间表示中的每个表达项的类型,对所述中间表示进行转换处理,得到转换表示,包括:
在所述表达项的类型为单项式的情况下,基于类模板将所述表达项转换为单项式;和/或
在所述表达项的类型为多项式的情况下,将所述表达项转换为第二表达式树。
6.根据权利要求5所述的方法,其特征在于,所述第二表达式树中除叶子节点之外的每个左节点为操作符,所述第二表达式树中的每个右节点为单项式。
7.根据权利要求6所述的方法,其特征在于,所述表达项中的常数项在所述第二表达式树中所在的节点为距离根节点最近的右节点。
8.根据权利要求1所述的方法,其特征在于,所述单项式最多仅包括至少两个元素之间的乘法运算;和/或
所述多项式包括至少两个单项式之间的加法运算。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述优化后的所述中间表示编译为硬件设备可执行的目标代码。
10.一种数据处理方法,其特征在于,包括:
获取目标代码和待处理图像;
对所述待处理图像执行所述目标代码的处理,得到图像处理结果;
其中,所述目标代码是基于权利要求1至9中至少一项所述的方法得到的优化后的中间表示得到的。
11.一种数据处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取深度学习模型的中间表示;
第一处理模块,用于基于单项式和多项式中的至少一种,对所述中间表示进行优化处理,得到优化后的所述中间表示,其中,所述优化后的所述中间表示用于得到硬件设备可执行的目标代码;
所述第一处理模块具体用于:
确定所述中间表示中处于同一层级的多个表达项中每个表达项的类型;
在所述多个表达项中的至少两个表达项的类型均为单项式并且所述至少两个表达项匹配的情况下,将所述至少两个表达项合并为单项式类型的表达项;和/或
在所述多个表达项中的第一表达项的类型为多项式并且所述第一表达项与第二表达项匹配的情况下,将所述第一表达项和所述第二表达项进行基于单项式的合并,得到多项式类型的表达项。
12.一种数据处理装置,其特征在于,包括:
第二获取模块,用于获取目标代码和待处理图像;
第二处理模块,用于对所述待处理图像执行所述目标代码的处理,得到图像处理结果;
其中,所述目标代码是基于权利要求11所述的装置得到的优化后的中间表示得到的。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至10任意一项所述的方法。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至10任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010362549.0A CN111552477B (zh) | 2020-04-30 | 2020-04-30 | 数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010362549.0A CN111552477B (zh) | 2020-04-30 | 2020-04-30 | 数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552477A CN111552477A (zh) | 2020-08-18 |
CN111552477B true CN111552477B (zh) | 2023-11-03 |
Family
ID=72002650
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010362549.0A Active CN111552477B (zh) | 2020-04-30 | 2020-04-30 | 数据处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552477B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385183A (zh) * | 2021-12-17 | 2022-04-22 | 飞腾信息技术有限公司 | 一种数据处理方法、装置、设备及计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1846196A (zh) * | 2003-05-02 | 2006-10-11 | 可递有限公司 | 生成用于程序代码转换的中间表示的体系结构 |
WO2007042550A2 (en) * | 2005-10-13 | 2007-04-19 | International Business Machines Corporation | Pattern matching and transformation of intermediate language expression trees |
CN110472255A (zh) * | 2019-08-20 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 神经网络机器翻译方法、模型、电子终端以及存储介质 |
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
-
2020
- 2020-04-30 CN CN202010362549.0A patent/CN111552477B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1846196A (zh) * | 2003-05-02 | 2006-10-11 | 可递有限公司 | 生成用于程序代码转换的中间表示的体系结构 |
WO2007042550A2 (en) * | 2005-10-13 | 2007-04-19 | International Business Machines Corporation | Pattern matching and transformation of intermediate language expression trees |
CN110764744A (zh) * | 2018-07-25 | 2020-02-07 | 赛灵思公司 | 用于神经网络计算的中间表示生成方法和装置 |
CN110472255A (zh) * | 2019-08-20 | 2019-11-19 | 腾讯科技(深圳)有限公司 | 神经网络机器翻译方法、模型、电子终端以及存储介质 |
Non-Patent Citations (2)
Title |
---|
Rui Guo Etc..《2016 IEEE Winter Conference on Applications of Computer Vision (WACV)》.2016,全文. * |
赵捷 ; 李颖颖 ; 赵荣彩 ; .基于多面体模型的编译"黑魔法".软件学报.2018,(08),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111552477A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107957989B (zh) | 基于集群的词向量处理方法、装置以及设备 | |
CN109241101B (zh) | 一种数据库查询优化方法、装置、及计算机设备 | |
CN116341441B (zh) | 对数字逻辑电路进行优化的方法及相关设备 | |
CN109800853B (zh) | 融合卷积神经网络和显式反馈的矩阵分解方法、装置及电子设备 | |
CN111552477B (zh) | 数据处理方法和装置 | |
CN116932735A (zh) | 一种文本比对方法、装置、介质和设备 | |
CN117851613A (zh) | 预训练语言模型的编辑方法及装置 | |
CN114756444A (zh) | 计算图优化方法及装置 | |
CN110348581B (zh) | 用户特征群中用户特征寻优方法、装置、介质及电子设备 | |
CN112015426A (zh) | 一种代码管理方法、装置及设备 | |
CN114330719A (zh) | 从事件的时序图中发现关联规则的方法及电子设备 | |
CN116955419A (zh) | 一种几何题解答方法、系统及电子设备 | |
CN113807522B (zh) | 贝叶斯网络结构的生成方法、装置、电子设备和存储介质 | |
CN113760380B (zh) | 网络模型的运行代码的确定方法、装置、设备及存储介质 | |
CN113255933A (zh) | 特征工程和图网络生成方法和装置、分布式系统 | |
CN114926687A (zh) | 一种分类模型的训练方法及装置 | |
CN114219964A (zh) | 一种神经网络架构搜索方法、装置及电子设备和存储介质 | |
CN110569342B (zh) | 问题匹配方法、装置、设备及计算机可读存储介质 | |
CN117271803B (zh) | 知识图谱补全模型的训练方法、装置、设备及存储介质 | |
CN111626044A (zh) | 文本生成方法、装置、电子设备及计算机可读存储介质 | |
CN115544522B (zh) | 源码漏洞检测方法、装置、电子设备及存储介质 | |
CN118296413A (zh) | 预测方法及相关设备 | |
CN112667402B (zh) | 一种分布式计算SimRank单源节点相似度的方法和装置 | |
US9348958B2 (en) | Method and apparatus for calculating yield | |
CN116954618A (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 |