CN112270176B - 深度学习框架中模式转换的方法、装置和计算机存储介质 - Google Patents

深度学习框架中模式转换的方法、装置和计算机存储介质 Download PDF

Info

Publication number
CN112270176B
CN112270176B CN202011242902.8A CN202011242902A CN112270176B CN 112270176 B CN112270176 B CN 112270176B CN 202011242902 A CN202011242902 A CN 202011242902A CN 112270176 B CN112270176 B CN 112270176B
Authority
CN
China
Prior art keywords
mode
syntax element
schema
operator
updated
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
CN202011242902.8A
Other languages
English (en)
Other versions
CN112270176A (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.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
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 Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202011242902.8A priority Critical patent/CN112270176B/zh
Publication of CN112270176A publication Critical patent/CN112270176A/zh
Priority to JP2021143795A priority patent/JP7344259B2/ja
Priority to KR1020210124463A priority patent/KR102570092B1/ko
Priority to US17/480,294 priority patent/US11604774B2/en
Priority to EP21197920.8A priority patent/EP3996009A1/en
Application granted granted Critical
Publication of CN112270176B publication Critical patent/CN112270176B/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
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

根据本公开的示例实施例,提供了深度学习框架中的模式转换的方法、装置、计算机存储介质和计算机程序产品,可用于深度学习框架构建。一种深度学习框架中的模式转换方法,包括:基于第一模式中的第一语法元素和第一模式中的第一语法元素之间的上下文关系,更新第一模式,得到经更新的第一模式;基于经更新的第一模式中的经更新的第一语法元素与第二模式系统中的第二语法元素之间的映射关系,生成与经更新的第一语法元素相对应的第二语法元素;以及根据经更新的第一语法元素的上下文关系组合第二语法元素,以生成第二模式。根据本公开的方案,能够高效率地执行模式间的转换。

Description

深度学习框架中模式转换的方法、装置和计算机存储介质
技术领域
本公开的实施例涉及机器学期领域,并且更具体地,涉及模式转换的方法、装置、计算机存储介质和计算机程序产品。
背景技术
当前的深度学习框架都尽力同时解决易用性和性能部署问题。现在主流深度学习框架往往都具有命令式编程(也被称为动态图)和声明式编程(也称为静态图)两种模式。命令式编程是指写的模式执行计算语句后立即解释执行,并即时地拥有这个计算结果。这种机制更符合用户编程习惯,并且更易进行模式调试,易于用户编写但是机器执行计算资源消耗较大。声明式编程则指程序在编译执行时先搭建起计算的图结构,然后再利用执行单元执行图结构操作。这种机制不易于用户编写,但机器执行计算资源消耗较小,适于工业模型部署。
发明内容
因此,需要一种模式转换方案,使得命令式编程(也被称为动态图)和声明式编程(也称为静态图)之间的能够进行模式转换。
根据本公开的实施例,提供了一种模式转换的方案。
在本公开的第一方面中,提供了一种模式转换的方法,包括:基于第一模式中的第一语法元素和第一模式中的第一语法元素之间的上下文关系,更新第一模式,得到经更新的第一模式;基于经更新的第一模式中的经更新的第一语法元素与第二模式系统中的第二语法元素之间的映射关系,生成与经更新的第一语法元素相对应的第二语法元素;以及根据经更新的第一语法元素的上下文关系组合第二语法元素,以生成第二模式。
在本公开的第二方面中,提供了一种模式转换的装置,包括:第一更新模块,被配置为基于第一模式中的第一语法元素和第一模式中的第一语法元素之间的上下文关系,更新第一模式,得到经更新的第一模式;语法元素转换模块,基于经更新的第一模式中的经更新的第一语法元素与第二模式系统中的第二语法元素之间的映射关系,生成与经更新的第一语法元素相对应的第二语法元素;以及模式生成模块,被配置为根据经更新的第一语法元素的上下文关系组合第二语法元素,以生成第二模式。
在本公开的第三方面中,提供了一种电子设备,包括一个或多个处理器;以及存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现根据本公开的第一方面的方法。
在本公开的第四方面中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的第一方面的方法。
在本公开的第五方面中,提供了一种计算机程序产品,包括计算机程序指令,其特征在于,该计算机程序指令被处理器实现根据本公开的第一方面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了本公开的多个实施例能够在其中实现的示例环境的示意图;
图2示出了根据本公开的一些实施例的模式转换的过程的流程图;
图3示出了根据本公开的一些实施例的更新模式的过程的流程图;
图4示出了根据本公开的一些实施例的模式转换的示例过程的示意图;
图5示出了根据本公开的一些实施例的模式转换的装置的示意性框图;以及
图6示出了能够实施本公开的多个实施例的计算设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如以上提及的,需要一种命令式编程(也被称为动态图)和声明式编程(也称为静态图)之间执行模式转换的方案,以实现同时兼顾易用性和部署性的深度学习框架。现有技术通过开发动态图转静态图(下简称动转静)模块,让框架系统用户使用动态图模式方便构建深度学习框架,转化为静态图来获得部署性能优势。具体上说,其将动态图模式转化为静态图模式或转换为静态图的中间表示IR。上述两种转换都会使用编译器相关技术,实现步骤是首先将动态图模式的前端代码解析(parse)成抽象语法树(abstract syntax tree,简称AST),之后从抽象语法树生成静态图模式或者静态图中间表示IR。现有技术主要存在以下缺陷:
(1)缺乏针对高层语言在动转静过程的优化,一些在动态图模式中的语句存在冗余或者循环嵌套较复杂,不经优化直接转化为静态图会导致在静态图运行中消耗大量计算资源;
(2)软件工程上对动态图和静态图的模式一致或者运行方式一致性限制较高。动态图与静态图的模式差距越少则转化工作越少。这种情况下,一些深度学习框架需要将静态图和动态图的运行接口都定义一致,以达到转化前后模式在动态图静态图都可以用同样方式运行。在使得必须严格同一动态图模式和静态图模式的接口,对深度学习框架要求较高。
根据本公开的实施例,提出了一种模式转换的方案。该方案在模式间的转换过程中进行优化。在该方案中,首先对第一模式进行更新。然后通过映射关系将更新后的模式的语法元素转换为第二模式的语法元素。最后根据上下文关系组合第二语法元素来生成第二模式。
通过在模式转换过程中加入优化过程,可以使得转换后的模式的执行速度得到提升,通过建立不同的优化和映射模型,方便模式的调试。
以下参考附图来说明本公开的基本原理和若干示例实现。
图1示出了本公开的多个实施例能够在其中实现的示例环境100的示意图。应当理解,图1所示出的环境100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,环境100包括第一模式110、第一语法元素120、经更新的第一语法元素170、经更新的第一模式130、第二模式140、第二语法元素150和计算设备160。
第一模式110可以是动态图模式,在本公开的实施例中,为了方便描述和理解,术语“模式”将通过代码的形式而被表示,其能够借助PYTHON原生的语法元素(for,if,else,while)来进行网络的搭建。第一模式110通过命令式编程而被实施,并且其不易于被机器执行,即机器执行该第一模式110所需的机器开销成本较大,例如需要较多的图形处理单元(GPU)资源或需要大量的时间。
计算设备160可以对第一模式110进行解析。例如,计算设备160可以利用解析器对第一模式110中的第一语法元素120和其之间的上下文关系进行解析。这里的第一语法元素120可以指模式的基本组成单元,在本申请实施例中,语法元素指各个模式语言中的基本组成元素。例如,若应用程序的源模式文件为PYTHON语言,则模式中的语法元素具体可以指控制流程(for,if,else,while)、输入和输出(input,print)、程序格式、数据类型和变量等,如为JAVA语言,则指其中的类、属性、模式块、注解、注释等。计算设备可以根据对第一模式110进行解析结果对第一模式进行更新(优化)以及转换为第二模式140,具体过程将在下文进行阐述。上述PYTHON语言仅仅是示例性的第一模式110还可以基于任何适于用户编写的语言系统而被创建。
计算设备160可以是任何具有计算能力的设备。作为非限制性示例,计算设备160可以是任意类型的固定计算设备、移动计算设备或便携式计算设备,包括但不限于台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、多媒体计算机、移动电话等;计算设备160的全部组件或一部分组件可以分布在云端。计算设备160至少包含处理器、存储器以及其他通常存在于通用计算机中的组件,以便实现计算、存储、通信、控制等功能。
在一个实施例中,计算设备160可以包括预先训练好的语法解析器、语法优化器、语法转换器、模式生成器等。
经更新的第一模式130和第一模式110是相同语言系统中的模式,经更新的第一模式130中的经更新的第一语法元素170的数目小于第一模式110的第一语法元素120的数目,更新(优化)过程将在下文详细描述。
第二模式140可以是静态图模式,其在被执行时在每个步骤不输出结果,而是最终整体输出结果,其被执行所需的机器开销成本小于第一模式110被执行所需的机器开销成本,第二模式140可以是C++或者为中间表示(Intermediate Representation)模式,本公开在此不做限制,其可以是任何适于被机器执行的模式语言。第二模式140可以包括第二语法元素150
以下结合图2至图4来进一步描述详细的模式转换的过程。图2图示了根据本公开的实施例的模式转换的方法200的流程图。方法200可以由图1中的计算设备160来实施。为便于描述,将参照图1来描述方法200。
在框210,计算设备160基于第一模式110中的第一语法元素120和第一模式中的第一语法元素120之间的上下文关系,更新第一模式110,得到经更新的第一模式130。
在一个实施例中,经更新的第一模式130中的经更新的第一语法元素170的数目小于第一模式110中的第一语法元素120的数目。
例如,计算设备160可以对第一模式进行语法解析,并将第一模式在抽象语法树(Abstract Syntax Tree,AST)层面转换为第一模式的抽象语法树。计算设备160可以根据某种给定的形式文法对由第一语法元素120构成的第一模式110进行分析并确定其语法结构,即第一语法元素120和其上下文关系。
在一个实施例中,计算设备160可以利用其内部的或者是外部的语法解析器来执行对第一模式110的语法解析。语法解析器通常作为编译器或解释器的组件,它的作用是进行语法检查、并构建由输入的单词组成的数据结构(一般是语法解析树、抽象语法树等层次化的数据结构)。语法解析器通常使用一个独立的词法分析器从输入字符流中分离出一个个的单词,并将单词流作为其输入。实际开发中,语法解析器可以手工编写,也可以使用工具(半)自动生成。
抽象语法树是源模式语法结构的一种抽象表示。它以树状的形式表现编程语言的结构,树的每个节点ASTNode都表示源模式中的一个结构。抽象语法树把第一模式110中的各种语法元素定义成相应的对象,树的每个节点表示在源模式中出现的构造。语法是抽象的,因为它不代表真实语法中出现的每个细节,而只是结构,内容相关的细节。例如,分组括号在树结构中是隐式的,并且可以通过具有三个分支的单个节点来表示类似于if-condition-then表达式的句法结构。通常由解析器在源应用程序模式转换和编译过程中构建。一旦构建,通过后续处理(例如,上下文分析)将附加信息添加到AST中。
接着,计算设备160可以根据上述获取的第一语法元素120和其上下文关系对第一模式110进行更新。将结合图3进一步描述更新的过程。图3示出了根据本公开的一些实施例的更新模式的过程的流程图。
在310,计算设备160确定第一语法元素110中包括的循环操作符和条件操作符的上文关系是否为在所述第一模式中相邻。例如,以PYTHON作为示例,第一模式110中存在以下模式:
while i<n:
if some_condition:
break
计算设备160解析出其中存在第一语法元素120:循环操作符while(也可以被为循环算子(operator))和条件操作符if,且计算设备160确定其在第一模式110中相邻。
在320,计算设备160将条件操作符与所述循环操作符更新为另一循环操作符。例如,继续上面的示例进行描述,计算设备160将上述模式更新为等价的PYTHON模式:
while i<n and some_condition:
其中仅存在一个循环操作符while,基于上述经更新的第一模式130转换的第二模式140中只有一个循环操作符,这使得其在后续执行中比未优化前加速了数倍(例如至少7倍)。
在一个备选实施例中,在第一语法元素120包括常数的情况下,计算设备160可以移除第一模式110中的重复的常数。例如,第一模式中包括以下模式:a=1,b=a,c=b,则计算设备160可以将其更新(优化为)a=b=c=1。
上述示例仅仅是示例性的,除此之外还可以有各种针对第一模式的更新和优化,例如常数优化,冗余语句去除优化,等价但更快模式替换优化等,以使得更新后的第一模式130中的经更新的第一语法元素170的数目小于第一模式110中的第一语法元素120的数目。可以将每个更新或优化同样限定为一个转换函数或者模块,可以后续对各种函数或者模块进行增删优化,同时测试优化也非常灵活。在第一模式,即动态图模式的层级水平进行分析和优化可以显著提升转化后静态图的执行速度。
继续回到图2进行描述,在框220,计算设备160基于经更新的第一模式130中的经更新的第一语法元素170与第二模式系统中的第二语法元素150之间的映射关系,生成与经更新的第一语法元素170相对应的第二语法元素150。
在一个示例中,计算设备160可以在经更新的第一语法元素170和相应的第二语法元素150之间创建不同的转换器类别,例如针对语法元素If-else进行转换的IfElse转换器,针对循环进行转换的Loop转换器,针对标准输出进行转换的Print转换器等。
在一个实施例中,经更新的第一模式130中的每个经更新的第一语法元素170的抽象语法树作为一个转换器的输入,该转换器转换输出一个新的抽象语法树作为第二语法元素150。当这些其之间存在语法差异的经更新的第一语法元素170和第二语法元素150的转换运行完毕后,经更新的第一模式130中的经更新的第一模式元素170被转换为第二语法元素150。这种结构的优势在于软件工程上可以对多个语法元素转换器分别进行调试,可以针对不同类别的语法元素转换器进行优化,测试时也可以分语法元素进行测试。
在框230,计算设备160根据经更新的第一语法元素170的上下文关系组合第二语法元素150,以生成第二模式140。例如,计算设备可以根据经更新的第一模式130中的参数、调用函数之间的逻辑关系来对转换后的参数、调用函数进行组合来生成第二模式140。
在一个实施例中,第一语法元素120包括第一操作符,第二语法元素150包括第二操作符,计算设备160使第二模式140通过与第二操作符相对应的第一操作符而被执行。
例如,计算设备160可以将第二模式140运行组合成第一模式110的第一操作符,该第一操作符包含被转化成第二模式140的运算。该第一操作符可以执行神经网络正向计算和反向计算。在一个示例中,例如第一模式为
def op_add(x,y);
return x+y
其中第一操作符为求和操作符add,计算设备160将上述第一模式转换为第二模式“第二模式的add,x,y”,其中“第二模式的add,x,y”中包括以第二模式语言编写的第二操作符(第二模式语言编写的求和操作符add)。然后计算设备160可以继续通过与第二操作符相对应的第一模式的操作符add来执行第二模式,即
def op_add(第二模式的add,x,y):
sum=执行第二模式_add(x,y);
return sum
最后得到运行的结果sum。
上述示例示出了第一操作符和第二操作符为单一操作符,即求和操作符add的示例。在另一示例中,第一操作符可以为组合操作符,例如,第一模式可以为:
def func(x):
return softmax(w*x+b)
即第一模式的第一操作符为矩阵乘法w*x,加偏移量+b,最后进行softmax处理,则计算设备160可以将上述第一模式转换为第二模式“第二模式的func(x)”,其中“第二模式的func(x)”中包括以第二模式语言编写的第二操作符(以第二模式语言编写的softmax(w*x+b)操作),然后计算设备160可以继续通过第一模式的操作符来执行第二模式,即deffunc(第二模式的func(x)):
return执行第二模式的func(x)。
通过将转换后的第二模式完全嵌套成为第一模式的一部分执行,能够减少对不同模式间接口统一的需求。如果第一模式(动态图模式)和第二模式(静态图模式)运行方式很不同的深度学习框架,其动态图模式转化为静态图模式后由于运行方式不同,静态图模式无法在原动态图模式基础上运行。而上述方式放宽这部分软件管理负担,即使运行方式不同,也能以封装为动态图操作符的方式按动态图模式运行。此外,可以部分地将动态图模式转换为静态图模式,例如用户只对一小部分动态图模式性能不满意,而别的部分想保存动态图易用性,上述方式与将全部动态图模式转环为静态图模式相比更加灵活。
本公开同时兼顾深度学习框架的易用性和部署性能。通过对命令式编程(也被称为动态图)模式在转换前进行更新和优化,可以提高转换后的声明式编程(也称为静态图)模式的执行效率。通过将转化后的静态图模式作为动态图算子(operator)运行,使得不必限定相同的接口,深度学习的框架包容性提升。此外,通过限定不同类别的语法元素转换器以及优化转换器,可以灵活地对模式转换进行分工和测试,并且方便添加删除其中的转换器,使得系统具有灵活可扩展性。
图4示出了根据本公开的一些实施例的模式转换的示例过程的示意图。首先计算设备160判断是否执行对第一模式110的转换。对于用户指定的第一模式,由于深度学习中第一模式的应用程序接口(Application Programming Interface)的运行常常会需要多个循环多次运行以进行大数据训练,假如每次运行都进行模式转换则会拖慢系统。为了加速转化过程,系统第一步是用高速存储器(例如缓存)判断这部分模式是否之前曾经被转化过,如果缓存命中,即之前转化过这部分模式则直接返回被转化过的静态图模式,否则开始进入正式的转化过程,并且将本次转化结果存储进缓存。
在一个实施例中,计算设备获取所述第一模式的第一标识,确定另一第一模式的第二标识;以及如果确定所述第一标识与所述第二标识相匹配,将所述第二模式确定为所述第二模式系统中的、与所述另一第一模式相对应的模式。
例如,计算设备160将历史上第一模式的第一标识和与其相对应的经转换的第二模式的标识作为标识对存储在缓存410中。当计算设备160接收到另一第一模式时,首先获取该另一模式的第二标识。随后计算设备160将该第二标识与上述标识对中的第一标识比较。如果第一标识与第二标识相匹配,则说明另一第一模式与第一模式相同或者在功能上等价,则计算设备可以通过上述标识对中的第二模式的标识确定历史上转换过的第二模式,然后直接将该第二模式作为另一第一模式转换后的模式。
如果计算设备160确定第一标识未与第二标识相匹配,则计算设备将第一模式解析110为第一模式的抽象语法树410。然后将该抽象语法树更新或者优化,以确定经更新的第一模式的抽象语法树420。计算设备160接着确定第二模式的抽象语法树430。计算设备160最后生成第二模式140其中详细过程参考上面关于图2的描述,在此不再赘述。
请注意,上述更新或优化过程虽然被示出为是对第一模式的操作,但也可以对第二模式进行优化或者更新,或者同时对第一模式和第二模式进行更新和优化,本公开在此不做限制。
图5示出了根据本公开的一些实施例的深度学习框架中的模式转换的装置的示意性框图。装置500可以被包括在图1的计算设备160中或者被实现为计算设备160。
如图5所示,装置500包括第一更新模块510,被配置为基于第一模式中的第一语法元素和第一模式中的第一语法元素之间的上下文关系,更新第一模式,得到经更新的第一模式;语法元素转换模块520,被配置为基于经更新的第一模式中的经更新的第一语法元素与第二模式系统中的第二语法元素之间的映射关系,生成与经更新的第一语法元素相对应的第二语法元素;以及模式生成模块530,被配置为根据经更新的第一语法元素的上下文关系组合第二语法元素,以生成第二模式。
在一些实施例中,经更新的第一语法元素的数目小于第一语法元素的数目。
在一些实施例中,第一语法元素可以包括第一操作符,第二语法元素包括第二操作符,装置500还可以包括:模式执行模块,其能够被配置为使第二模式通过与第二操作符相对应的第一操作符而被执行。
在一些实施例中,第一模式的第一标识被存储在高速存储装置中,装置500还可以包括:第一标识确定模块,其能够被配置为获取第一模式的第一标识;第二标识确定模块,其能够被配置为确定另一第一模式的第二标识;以及模式确定模块,其能够被配置为如果确定第一标识与第二标识相匹配,将第二模式确定为第二模式系统中的、与另一第一模式相对应的模式。
在一些实施例中,其中第一语法元素可以包括循环操作符和条件操作符,第一更新模块510可以包括:第二更新模块,其能够被配置为如果确定条件操作符与循环操作符的上文关系为在第一模式中相邻,将条件操作符与循环操作符更新为另一循环操作符。
在一些实施例中,其中第一语法元素包括常数,其中基于第一模式中的语法元素和第一模式中的第一语法元素之间的上下文关系,第一更新模块510可以包括:第三更新模块,其能够被配置为移除第一模式中的重复的常数。
在一些实施例中,其中第一模式可以通过命令式编程而被实施,第二模式可以通过声明式编程而被实施。
在一些实施例中,其中第一模式被执行所需的机器开销成本可以大于第二模式被执行所需的机器开销成本。
图6图示了可以用来实施本公开内容的实施例的示例设备600的示意性框图。例如,如图1所示的示例环境100中的计算设备160可以由设备600来实施。如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法200和300,可由处理单元601执行。例如,在一些实施例中,方法200和300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序被加载到RAM 603并由CPU 601执行时,可以执行上文描述的方法200和300中的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (18)

1.一种深度学习框架中的模式转换方法,包括:
基于第一模式中的第一语法元素和所述第一模式中的第一语法元素之间的上下文关系,更新所述第一模式,得到经更新的第一模式;
基于所述经更新的第一模式中的经更新的第一语法元素与第二模式系统中的第二语法元素之间的映射关系,生成与所述经更新的第一语法元素相对应的第二语法元素;以及
根据所述经更新的第一语法元素的上下文关系组合所述第二语法元素,以生成第二模式,
其中所述第一模式是动态图模式,并且所述第二模式是静态图模式,并且
其中基于所述上下文关系更新所述第一模式包括:
对所述第一模式进行语法解析,并将所述第一模式在抽象语法树层面转换为所述第一模式的抽象语法树;
根据给定的形式文法对由所述第一语法元素构成的所述第一模式进行分析并确定所述上下文关系;以及
基于所述上下文关系更新所述第一模式。
2.根据权利要求1所述的方法,其中所述经更新的第一语法元素的数目小于所述第一语法元素的数目。
3.根据权利要求1所述的方法,其中所述第一语法元素包括第一操作符,所述第二语法元素包括第二操作符,所述方法还包括:
所述第二模式通过与所述第二操作符相对应的第一操作符而被执行。
4.根据权利要求1所述的方法,所述第一模式的第一标识被存储在高速存储装置中,所述方法还包括:
获取所述第一模式的第一标识;
确定另一第一模式的第二标识;以及
如果确定所述第一标识与所述第二标识相匹配,将所述第二模式确定为所述第二模式系统中的、与所述另一第一模式相对应的模式。
5.根据权利要求1所述的方法,其中所述第一语法元素包括循环操作符和条件操作符,
其中基于所述第一模式中的语法元素和所述第一模式中的第一语法元素之间的上下文关系,更新所述第一模式包括:
如果确定所述条件操作符与所述循环操作符的上文关系为在所述第一模式中相邻,将所述条件操作符与所述循环操作符更新为另一循环操作符。
6.根据权利要求1所述的方法,其中所述第一语法元素包括常数,其中基于所述第一模式中的语法元素和所述第一模式中的第一语法元素之间的上下文关系,更新所述第一模式包括:
移除所述第一模式中的重复的常数。
7.根据权利要求1所述的方法,其中所述第一模式通过命令式编程而被实施,所述第二模式通过声明式编程而被实施。
8.根据权利要求1所述的方法,其中所述第一模式被执行所需的机器开销成本大于所述第二模式被执行所需的机器开销成本。
9.一种深度学习框架中的模式转换装置,包括:
第一更新模块,被配置为基于第一模式中的第一语法元素和所述第一模式中的第一语法元素之间的上下文关系,更新所述第一模式,得到经更新的第一模式;
语法元素转换模块,被配置为基于所述经更新的第一模式中的经更新的第一语法元素与第二模式系统中的第二语法元素之间的映射关系,生成与所述经更新的第一语法元素相对应的第二语法元素;以及
模式生成模块,被配置为根据所述经更新的第一语法元素的上下文关系组合所述第二语法元素,以生成第二模式,
其中所述第一模式是动态图模式,并且所述第二模式是静态图模式,并且
其中基于所述上下文关系更新所述第一模式包括:
对所述第一模式进行语法解析,并将所述第一模式在抽象语法树层面转换为所述第一模式的抽象语法树;
根据给定的形式文法对由所述第一语法元素构成的所述第一模式进行分析并确定所述上下文关系;以及
基于所述上下文关系更新所述第一模式。
10.根据权利要求9所述的装置,其中所述经更新的第一语法元素的数目小于所述第一语法元素的数目。
11.根据权利要求9所述的装置,其中所述第一语法元素包括第一操作符,所述第二语法元素包括第二操作符,所述装置还包括:
模式执行模块,被配置为使所述第二模式通过与所述第二操作符相对应的第一操作符而被执行。
12.根据权利要求9所述的装置,所述第一模式的第一标识被存储在高速存储装置中,所述装置还包括:
第一标识确定模块,被配置为获取所述第一模式的第一标识;
第二标识确定模块,被配置为确定另一第一模式的第二标识;以及
模式确定模块,被配置为如果确定所述第一标识与所述第二标识相匹配,将所述第二模式确定为所述第二模式系统中的、与所述另一第一模式相对应的模式。
13.根据权利要求9所述的装置,其中所述第一语法元素包括循环操作符和条件操作符,所述第一更新模块包括:
第二更新模块,被配置为如果确定所述条件操作符与所述循环操作符的上文关系为在所述第一模式中相邻,将所述条件操作符与所述循环操作符更新为另一循环操作符。
14.根据权利要求9所述的装置,其中所述第一语法元素包括常数,其中基于所述第一模式中的语法元素和所述第一模式中的第一语法元素之间的上下文关系,所述第一更新模块包括:
第三更新模块,被配置为移除所述第一模式中的重复的常数。
15.根据权利要求9所述的装置,其中所述第一模式通过命令式编程而被实施,所述第二模式通过声明式编程而被实施。
16.根据权利要求9所述的装置,其中所述第一模式被执行所需的机器开销成本大于所述第二模式被执行所需的机器开销成本。
17.一种电子设备,所述设备包括:
一个或多个处理器;以及
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至8中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如权利要求1至8中任一项所述的方法。
CN202011242902.8A 2020-11-09 2020-11-09 深度学习框架中模式转换的方法、装置和计算机存储介质 Active CN112270176B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202011242902.8A CN112270176B (zh) 2020-11-09 2020-11-09 深度学习框架中模式转换的方法、装置和计算机存储介质
JP2021143795A JP7344259B2 (ja) 2020-11-09 2021-09-03 深層学習フレームワークにおけるパターン変換方法、装置、電子デバイス、コンピューター記憶媒体およびコンピュータープログラム製品
KR1020210124463A KR102570092B1 (ko) 2020-11-09 2021-09-17 딥 러닝 프레임워크 중의 모드 전환 방법, 장치, 전자 기기, 컴퓨터 저장 매체 및 컴퓨터 프로그램 제품
US17/480,294 US11604774B2 (en) 2020-11-09 2021-09-21 Method and apparatus of converting schema in deep learning framework, and computer storage medium
EP21197920.8A EP3996009A1 (en) 2020-11-09 2021-09-21 Method and apparatus of converting schema in deep learning freamwork, and computer storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011242902.8A CN112270176B (zh) 2020-11-09 2020-11-09 深度学习框架中模式转换的方法、装置和计算机存储介质

Publications (2)

Publication Number Publication Date
CN112270176A CN112270176A (zh) 2021-01-26
CN112270176B true CN112270176B (zh) 2022-05-03

Family

ID=74340865

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011242902.8A Active CN112270176B (zh) 2020-11-09 2020-11-09 深度学习框架中模式转换的方法、装置和计算机存储介质

Country Status (5)

Country Link
US (1) US11604774B2 (zh)
EP (1) EP3996009A1 (zh)
JP (1) JP7344259B2 (zh)
KR (1) KR102570092B1 (zh)
CN (1) CN112270176B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114201242B (zh) * 2021-12-10 2023-01-31 北京百度网讯科技有限公司 用于处理数据的方法、装置、设备以及存储介质
CN115034960A (zh) * 2022-06-23 2022-09-09 北京百度网讯科技有限公司 动态图转静态图的方法、装置、电子设备和存储介质
CN116415666A (zh) * 2023-03-16 2023-07-11 阿里云计算有限公司 计算图的推理方法、系统及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008009463A (ja) 2004-09-27 2008-01-17 Catena Corp プログラムの変換方法
JP4622832B2 (ja) 2005-12-05 2011-02-02 日本電気株式会社 キャッシュ管理システム、キャッシュ管理方法、キャッシュ管理プログラムおよびキャッシュ管理サーバ
US20120084749A1 (en) * 2010-10-01 2012-04-05 Microsoft Corporation Programming language support for reactive programming
US9886477B2 (en) 2014-10-24 2018-02-06 Sap Se Generating imperative-language query code from declarative-language query code
US9875087B2 (en) * 2015-04-10 2018-01-23 Oracle International Corporation Declarative program engine for large-scale program analysis
JP2017033446A (ja) 2015-08-05 2017-02-09 株式会社リコー 情報処理システム、情報処理システムの制御方法、及びプログラム
US11436469B2 (en) 2017-07-31 2022-09-06 Microsoft Technology Licensing, Llc Knowledge graph for conversational semantic search
CN110543297B (zh) * 2018-05-28 2021-03-30 北京京东尚科信息技术有限公司 用于生成源码的方法和装置
CN109657103A (zh) * 2018-12-19 2019-04-19 广州天鹏计算机科技有限公司 数据结构的转换方法、装置、计算机设备和存储介质
CN111625224B (zh) * 2020-05-28 2023-11-24 北京百度网讯科技有限公司 代码生成方法、装置、设备及存储介质
CN111708539B (zh) * 2020-06-17 2021-07-06 腾讯科技(深圳)有限公司 一种应用程序代码转换方法、装置、电子设备和存储介质
CN111831384B (zh) * 2020-07-20 2024-01-09 北京百度网讯科技有限公司 语言切换方法和装置、设备及存储介质

Also Published As

Publication number Publication date
CN112270176A (zh) 2021-01-26
EP3996009A1 (en) 2022-05-11
KR102570092B1 (ko) 2023-08-22
US20220004526A1 (en) 2022-01-06
KR20210120937A (ko) 2021-10-07
JP2021192282A (ja) 2021-12-16
JP7344259B2 (ja) 2023-09-13
US11604774B2 (en) 2023-03-14

Similar Documents

Publication Publication Date Title
CN112270176B (zh) 深度学习框架中模式转换的方法、装置和计算机存储介质
JP7324831B2 (ja) ディープラーニングフレームワークにおける演算子の展開方法、展開装置及び電子機器
US8850414B2 (en) Direct access of language metadata
US8972955B2 (en) Reducing network trips for remote expression evaluation
US9043766B2 (en) Language translation using preprocessor macros
US10360004B2 (en) Using dynamic information to refine control flow graphs
US9311077B2 (en) Identification of code changes using language syntax and changeset data
US11573790B2 (en) Generation of knowledge graphs based on repositories of code
CN115509514B (zh) 一种前端数据模拟方法、装置、设备及介质
US9886251B2 (en) Optimized compiling of a template function
CN113448852A (zh) 一种测试案例的获取方法、装置、电子设备及存储介质
US8875089B2 (en) Workspace model for interrelated projects
Kausch et al. An Approach for Logic-based Knowledge Representation and Automated Reasoning over Underspecification and Refinement in Safety-Critical Cyber-Physical Systems.
US11429358B2 (en) Representing asynchronous state machine in intermediate code
Malle et al. The need for speed of ai applications: Performance comparison of native vs. browser-based algorithm implementations
JP7393404B2 (ja) コンパイル方法、コンパイル装置、電子デバイス、記憶媒体及びプログラム
Jarraya et al. Quantitative and qualitative analysis of SysML activity diagrams
Selonen et al. Generating structured implementation schemes from UML sequence diagrams
CN117827209A (zh) 函数调用显示方法、装置、存储介质及计算机设备
Berling Parser for Go Programs and Specification
CN114265582A (zh) 一种领域特定语言设计方法、装置、设备及存储介质
CN118070536A (zh) 异构模型转换方法、装置、电子设备及存储介质
CN118332053A (zh) 实现对象代理查询sql解析的方法、装置、设备及介质
CN117950659A (zh) 一种适用于低代码产品的表达式语言设计方法
KR20020053972A (ko) 에스디엘을 씨로 번역하기 위한 장치 및 그 방법

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