CN112270403B - 构建深度学习的网络模型的方法、装置、设备和存储介质 - Google Patents
构建深度学习的网络模型的方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN112270403B CN112270403B CN202011249391.2A CN202011249391A CN112270403B CN 112270403 B CN112270403 B CN 112270403B CN 202011249391 A CN202011249391 A CN 202011249391A CN 112270403 B CN112270403 B CN 112270403B
- Authority
- CN
- China
- Prior art keywords
- component
- execution mode
- execution
- network
- learning rate
- 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
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000013135 deep learning Methods 0.000 title claims abstract description 28
- 238000005457 optimization Methods 0.000 claims description 47
- 230000003068 static effect Effects 0.000 claims description 37
- 238000010276 construction Methods 0.000 claims description 21
- 230000015654 memory Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 19
- 238000004364 calculation method Methods 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013473 artificial intelligence Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 18
- 238000012549 training Methods 0.000 description 10
- 238000006243 chemical reaction Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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
-
- 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/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本申请公开了构建深度学习的网络模型的方法、装置、设备和存储介质,涉及人工智能,尤其是深度学习领域。构建深度学习的网络模型的方法,包括:基于模式参数,确定用于执行代码的执行模式;如果确定所述执行模式为第一执行模式,通过所述代码中的语法元素,使用能够在所述第一执行模式中使用的第一组件以执行所述代码;以及如果确定所述执行模式为第二执行模式,通过所述语法元素,使用能够在所述第二执行模式中使用的第二组件以执行所述代码;其中所述第一组件和所述第二组件具有相同的组件接口,所述语法元素对应于所述组件接口。以此方式,相同的代码可以在两种执行模式中使用。
Description
技术领域
本公开涉及数据处理领域,特别地,涉及人工智能和深度学习领域,并且更具体地,涉及构建深度学习的网络模型方法、装置、设备和存储介质。
背景技术
随着计算机技术的发展,目前已经存在可供用户使用的深度学习平台,以简化用户的开发过程。深度学习平台通常采用诸如静态图(也可以被称为声明式编程)的模式来进行最终网络模型的部署,以用于实际应用中的预测。对于计算设备而言,静态图执行起来速度快,有利于部署。然而,目前用户更习惯采用诸如动态图(也可以被称为命令式编程)的模式来进行网络模型开发,以便于训练以及调试。因此,存在代码在不同模式下皆可运行的需要。
发明内容
本公开提供了一种用于构建深度学习的网络模型的方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种构建深度学习的网络模型的方法,包括:基于模式参数,确定用于执行代码的执行模式;如果确定执行模式为第一执行模式,通过代码中的语法元素,使用能够在第一执行模式中使用的第一组件以执行代码;以及如果确定执行模式为第二执行模式,通过语法元素,使用能够在第二执行模式中使用的第二组件以执行代码;其中第一组件和第二组件具有相同的组件接口,语法元素对应于组件接口。
根据本公开的第二方面,提供了一种用于构建深度学习的网络模型的装置,包括:执行模式确定模块,被配置为基于模式参数,确定用于执行代码的执行模式;第一执行模块,被配置为如果确定执行模式为第一执行模式,通过代码中的语法元素,使用能够在第一执行模式中使用的第一组件以执行代码;以及第二执行模块,被配置为如果确定执行模式为第二执行模式,通过语法元素,使用能够在第二执行模式中使用的第二组件以执行代码;其中第一组件和第二组件具有相同的组件接口,语法元素对应于组件接口。
根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,该存储器存储有可被至少一个处理器执行的指令,该指令被至少一个处理器执行,以使至少一个处理器能够执行根据本公开的第一方面所述的方法。
根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,该计算机指令用于使计算机执行根据本公开的第一方面所述的方法。
根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序指令,其特征在于,该计算机程序指令被处理器实现根据本公开的第一方面的方法。
根据本申请的技术能够支持相同的代码在不同的执行模式下执行,以促进深度学习的网络模型的训练和部署。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了本公开的多个实施例能够在其中实现的示例环境的示意图;
图2示出了根据本公开的一些实施例的构建深度学习的网络模型的方法的流程图;
图3示出了根据本公开的一些实施例的计算设备执行控制流组件的方法的示意图;
图4示出了根据本公开的一些实施例的计算设备执行组件的方法的示意图;
图5示出了根据本公开的一些实施例的计算设备执行网络优化组件的方法的示意图;
图6示出了根据本公开的一些实施例的用于更新参数的计算图的示意图;
图7示出了根据本公开的一些实施例的计算设备执行学习率调整组件的方法的示意图;
图8示出了根据本公开的实施例的本公开的实施例的用于构建深度学习的网络模型的装置800的示意框图;
图9示出了能够实施本公开的多个实施例的电子设备900的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所讨论的,深度学习平台通常采用静态图的模式来进行最终网络模型的部署,以用于实际应用中的预测。在静态图模式中,计算设备分别执行计算图(ComputationalGraph)构建阶段、以及计算图执行阶段。在计算图构建阶段,计算设备可以定义变量和变量之间的计算关系以构建完整的计算图,在此阶段中,并不存在输入数据。在计算图构建阶段完成后,计算设备可以执行计算图执行阶段,以将输入数据输入到构建好的计算图中从而得到输出数据。
因此,当处于静态图模式时,由于在计算图构建阶段只能定义网络结构,而无法实时得到利用该网络结构相应的输出数据,因此,对于用户来说,静态图模式不利于调试,特别是网络模型的训练阶段的调试。
因此,在开发网络模型时,用户更习惯采用动态图模式,即立即执行模式。与静态图模式不同的是,动态图模式并不区分两个阶段,即计算图构建、以及计算图执行。在构建计算图的同时将输入数据输入,因此可以直接进行计算,返回输出数据。因此,当处于动态图模式时,用户需要编辑代码更加简单,并且能够实时得知网络的输出,因此调试起来更加容易。因此,在网络模型的训练阶段,用户更倾向采用动态图模式。
然而,这二者之间使用的API(应用程序接口)并不一致。在常规技术中,采用动态图模式的编程语言的编写代码不能直接在静态图模式下运行。
可以存在两种解决方案。一种方案是将在利用动态图模式已经调试好的代码(以下简称为动态图代码),由用户重新写成静态图模式下可执行的相应代码(以下简称为静态图代码),这种方案需要耗费大量的人工,并存在在重新编写的过程中导入新的错误的可能性。
另一种解决方案是由计算设备来执行动态图代码与静态图代码的转换(以下简称为动静转换),然而,动静转换存在一定的局限性,一是开发与该转换相关的功能成本较高,而且转换过程也可能引入新的错误;二是对在将用于转换的动态图代码编写过程中,虽然用户可以使用动态图编程语言(例如,python)的控制流(例如,if-eles),但不是该编程语言所支持所有的语法都可以使用,并且有时需要切换到静态图编程语言所使用的逻辑,可能造成用户的混淆;三是在编程过程中,用户需要经常切换到静态图的逻辑,从而导致调试困难。另外,经动静转换后的代码很复杂,如果存在问题也很难进行调试。
为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个问题,本公开的实施例提出了一种用于构建深度学习的网络模型的方法,该方法通过相同的语法元素调用相同的组件接口,并根据所处的执行模式的类型,通过该组件接口来分别调用在第一执行模式下应当调用的相应组件、和/或在第二执行模式下应当调用的相应组件。以此方式,通过一套代码,计算设备就可以实现对两种执行模式的支持,以用于深度学习的网络模型的训练和/或部署。
以下将参照附图来具体描述本公开的实施例。在本文中,术语“模型”可以从训练数据中学习到相应的输入与输出之间的关联,从而在训练完成后可以针对给定的输入,生成对应的输出。应当理解,“模型”也可以被称为“神经网络”、“学习模型”、“网络模型”或“学习网络”。模型的示例包括但不限于DNN、CNN、RNN、LSTM、或其任意的组合。
在本文中,术语“组件”是指深度学习框架中,用户可以调用的经封装的模块。组件可以包括预定义的代码,该预定义的代码被执行时可以实现相关的功能和/或方法,其包括但不限于:数据的输入和/或输出、逻辑控制、计算、网络模型构建、网络模型优化、反向传播、网络模型执行、学习率调整等等。可以通过接口(API)技术来访问各种组件,用户只需要知道接口并通过相应的语法元素来访问接口,就可以使用各种组件。在本文中,数据计算类的组件有时也被称为操作符或算子(Operator)。
在本文中,术语“语法元素”可以表示代码中的一行或多行指令,其可以指示一个需要实现功能。语法元素可以与各种接口相对应,也可以包括数据。通过语法元素,可以实现对各种组件的使用、以及数据(例如,变量、参数、常数、向量、矩阵、张量、参数列表等)的输入和输出。在编写代码的过程中,多个语法元素被组合,以通过顺序执行、分支条件选择和循环执行等执行结构,实现对任意复杂模型的描述。
在本文中,术语“执行模式”是指在其中各种组件可以被调用的运行模式。执行模式包括但不限于上文所述的动态图模式和静态图模式。可以理解的是,通常,在不同的执行模式中,能够使用的组件可能并不相同,并且因此其对应的API可能也不相同。
在本文中,术语“计算图”是指用来描述网络模型的操作组合的图。计算图可以包括两中元素:节点(Node)和边(Edge)。在一些实施例中,节点可以表示数据,诸如向量、矩阵、张量等,边可以表示操作,诸如加减乘除卷积等。然而,本公开对此并不做限定。
在本文中,术语“控制流组件”是指被配置为实现控制流的组件。控制流包括但不限于:顺序控制、分支(其可以包括双分支和多分支)条件选择控制、以及循环控制。控制流用于确定代码中各语法元素(并且因此,与之对应的组件)的执行顺序。
例如,在动态图模式,可以采用包括诸如if-else(python中使用的控制流组件)的语法元素来对应分支条件控制流接口,以使用分支条件控制流组件;采用包括诸如while和for(python中使用的控制流组件)的语法元素来对应循环控制流接口,以使用循环控制流组件。
而在静态图模式下,可以采用包括用于(双)分支条件控制的语法元素来对应(双)分支条件控制流接口,以使用(双)分支条件控制流组件;采用包括用于(多)分支条件控制的语法元素来对应(多)分支条件控制流API,以使用(多)分支条件控制流;采用包括用于循环控制的语法元素来对应循环控制流API,以使用循环控制流组件。常规技术中,静态图中的语法元素无法直接在动态图模式中使用。
图1示出了本公开的多个实施例能够在其中实现的示例环境100的示意图。应当理解,仅出于示例性的目的描述示例环境100的结构和功能,而不暗示对于本公开的范围的任何限制。本公开的实施例还可以被应用到具有不同的结构和/或功能的环境中。
计算设备105可以根据代码110中所包括的语法元素111、112和113来执行对应的处理逻辑,以最终构建深度学习的网络模型170。可以理解的是,代码110中可以包括任意个语法元素以用于构建网络模型170。
计算设备105例如可以根据语法元素111,调用能够在第一执行模式中调用的深度学习框架130的第一组件140。第一组件140例如可以包括:第一控制流组件141、第一网络构建组件142、第一网络执行组件143、第一网络优化组件144、以及第一学习率调整组件145。可以理解的是,第一组件140还可以包括实现其他功能的其他组件。
计算设备105例如可以根据语法元素113,调用能够在第二执行模式中调用的深度学习框架130的第二组件150。第二组件150例如可以包括:第二控制流组件151、第二网络构建组件152、第二网络执行组件153、第二网络优化组件154、以及第二学习率调整组件155。可以理解的是,第二组件140还可以包括实现其他功能的其他组件。
计算设备105例如可以根据语法元素113,调用用于修改执行模式的组件160。组件160包括模式参数更新组件161以及模式参数访问组件162。
上述具有相同功能的组件可以通过相同的接口来调用,例如,第一控制流组件141和第二控制流组件151可以共用同一接口,计算设备105可以通过相同的语法元素实现对第一控制流组件141和/或第二控制流组件151的调用。
上述组件可以任意组合为新的组件,或者被进一步划分为多个子组件。
为了便于清楚说明,以下将参考图1的环境100来描述本公开的实施例。应当理解,本公开的实施例还可以包括未示出的附加动作和/或可以省略所示出的动作。本公开的范围在此方面不受限制。为了便于理解,在下文描述中提及的具体数据均是示例性的,并不用于限定本公开的保护范围。
图2示出了根据本公开的一些实施的构建深度学习的网络模型的方法200的流程图。例如,方法200可以由如图1所示的计算设备105来执行。以下将结合图1来详细描述方法200的各个动作。
在框202,计算设备105可以基于模式参数,确定用于执行代码的执行模式。
具体地,在执行代码中的相应语法元素前,计算设备105确定是按照第一执行模式还是按照第二执行模式来执行。这可以通过设置模式参数来实现,例如,当模式参数指示执行模式为第一执行模式时,计算设备105则调用代码中的语法元素所对应的第一组件,以进行相应的操作。
在一些实施例中,通过使用相应的语法元素来调用模式参数更新组件,模式参数可以进行更新。例如,可以在深度学习框架中提供模式参数更新组件,并通过对应的语法元素来调用该组件来进行上述更新。当语法元素中包括用于启用第二执行模式的语法元素(例如,用于启用静态图模式的语法元素)时,计算设备105可以调用模式参数更新组件,以更新模式参数来启用第二执行模式(例如,静态图模式);当语法元素中包括用于禁用第二执行模式的语法元素时(例如,用于禁用静态图模式的语法元素),计算设备105可以调用模式参数更新组件,以更新模式参数来启用第一执行模式(例如,动态图模式)。
在一些实施例中,通过使用相应的语法元素来调用模式参数访问组件,可以获知当前的模式参数。例如,可以在深度学习框架中提供模式参数访问组件,并通过对应的语法元素(例如,用于查询当前执行模式的语法元素)来调用该组件以获取当前的模式参数。
虽然本申请采用第一执行模式和第二执行模式来进行说明,可以理解的是本申请的方案还可以用于更多数目的执行模式。在一些实施例中,第一执行模式包括动态图模式,第二执行模式包括静态图模式。但本申请并不限于此。
可以理解的是,为了在第一执行模式和第二执行模式中实现各种功能,深度学习框架中可以预置针对第一执行模式和第二执行模式的(多个)第一组件和(多个)第二组件,其中(例如,具有相同或相似功能的)第一组件和第二组件具有相同的组件接口,因此计算设备105可以通过代码中对应于该组件接口的相同语法元素,来实现对这些组件的调用,并在不同的执行模式下执行相应的组件中所包括的预定代码。
如果确定执行模式为第一执行模式,则在框204,计算设备105通过代码中的语法元素,使用能够在第一执行模式中使用的第一组件以执行代码。
具体地,第一执行模式可以是实时对计算图进行计算的模式。在这种模式下,计算设备105可以基于与语法元素相关联的输入数据,执行与第一组件相对应的第一操作以确定输出数据。由此,计算设备105可以实时向用户展示输出数据,以例如便于用户基于该输出数据对网络模型进行调试和/或训练。
如果确定执行模式为第二执行模式,则在框206,计算设备105通过语法元素,使用能够在第二执行模式中使用的第二组件以执行代码。
具体地,第二执行模式可以是非实时对计算图进行计算的模式。在这种模式下,计算设备105首先可以利用与第二组件相对应的第二操作,确定计算图,计算图包括与多个计算操作相对应的多个网络节点。然后,计算设备105基于与语法元素相关联的输入数据,由执行组件利用该计算图确定输出数据。由此,计算设备105可以快速地构建与网络模型相对应的全局计算图,以例如便于经训练的网络模型的部署及使用。
根据本公开的实施例,通过将第一执行模式下的组件与第二执行模式下的相应组件的接口设计为一致,计算设备105可以利用同一套代码,分别在第一执行模式和第二执行模式执行以获得相应的结果,由此可以避免因为接口不统一而导致需要在网络模型的构建过程中使用两套代码。
图3示出了根据本公开的一些实施例的计算设备105执行控制流组件的方法300的示意图。
控制流组件是指被配置为实现控制流的组件。控制流包括但不限于:顺序控制、分支(其可以包括双分支和多分支)条件选择控制、以及循环控制。例如,如上所讨论的,传统方案中,静态图模式和动态图模式所使用的控制流组件并不相同。
根据本公开的实施例,可以将第一执行模式和第二执行模式所使用的控制流组件设计为具有相同的组件接口,即相同的控制流组件接口330。控制流组件接口330可以包括分支条件选择控制组件接口(其例如可以对应于用于分支条件控制的语法元素)、以及循环控制组件接口(其例如可以对应于用于循环控制的语法元素)。在一些实施例中,控制流接口可以被设计为与原有的静态图模式中的控制流接口一致,以便于用户通过原有的语法元素而使用。在一些其他实施例中,控制流接口也可以被设计为通过新的语法元素而使用。
在第一执行模式中,当对应于控制流接口330的语法元素311被计算设备105执行时,计算设备105可以使用第一组件340中的第一控制流组件341。
例如,当第一控制流组件341是分支条件选择控制组件时,计算设备105可以根据输入数据确定比较函数的返回值,并由此实时确定需要执行哪个分支的函数(即,调用组件342或组件343)。
例如,当第一控制流组件341是循环控制组件时,计算设备105可以实时根据输入数据确定是否需要终止循环,在不需要终止循环的情况下,执行循环的逻辑,对循环变量进行操作以获取更新的变量。
计算设备105例如可以通过代码310中的语法元素312,调用模式参数更新组件361,以将执行模式从第一执行模式切换为第二执行模式。
在第二执行模式中,当对应于控制流接口330的语法元素313(其与语法元素311相同)被计算设备105执行时,计算设备105可以使用第二组件350中的第二控制流组件。
例如,当第二控制流组件341是分支条件选择控制组件时,计算设备105可以确定针对分支条件选择的计算图,例如,设置比较函数的操作节点,并且设置分支的函数的操作节点(即,组件352和组件353)。然后,计算设备105通过执行第二执行模式的网络执行组件来获取计算图的输出
例如,当第一控制流组件341是循环控制组件时,计算设备105可以实时确定针对循环操作的计算图,然后,计算设备105通过执行第二执行模式的网络执行组件来获取计算图的输出。
以此方式,通过两种执行模式的控制流组件统一为相同的控制流接口,计算设备105可以通过相同的语法元素,通过相同的组件接口来调用这些控制流组件,以支持在不同的执行模式中,执行不同的处理逻辑。
通过两种执行模式(例如,动静态图)接口统一的实现方式,开发者只需要编写一套代码,即可使其在两种执行模式下运行。计算设备可以利用该一套代码,在动态图模式和静态图模式下分别执行。以此方式,可以既保持动态图易于调试的优点,又保持静态图便于全局优化以及预测部署的优点,同时避免了需要重新编写代码或者对代码进行动静转换。
图4示出了根据本公开的一些实施例的计算设备105执行组件的方法400的示意图。
由于在第一执行模式和第二执行模式中,计算设备105对计算图的执行方式并不统一。例如,如上面所讨论的,计算设备105需要通过另外的、用于调用网络执行组件的代码来实现对静态图模式中的计算图的计算,并且因此代码中可能包括冗余的、用于实现上述执行的代码。
根据本公开的实施例,可以将第一执行模式和第二执行模式所使用的这类组件设计为具有相同的组件接口,例如网络执行组件接口430。还可以将用于第二执行模式中实现执行功能的方法封装到对应的组件451中,由此,代码410不必再包括与实现执行功能的方法相对应的不同语法元素。
在第一执行模式中,在对应于网络执行组件接口430的语法元素411被计算设备105执行时,计算设备105可以使用第一组件440中的第一网络执行组件441对输入数据进行处理以获取输出数据。
计算设备105例如可以通过代码410中的语法元素412,调用模式参数更新组件461,以将执行模式从第一执行模式切换为第二执行模式。
在第二执行模式中,在对应于网络执行组件接口430的语法元素413(其与语法元素411相同)被计算设备105执行时,计算设备105可以使用第二组件440中的第二网络执行组件451对输入数据进行处理以获取输出数据。
在一些实施中,可以分别为第一网络执行组件和第二网络执行组件设置类标签(例如,动态图模式类、以及静态图模式类),以有利于计算设备105在相应的执行模式下对对应的网络执行组件进行调用。
在一些实施例中,上述第一和第二网络执行组件441和451可以被设计,以支持对经封装的持有对象和经封装的持有函数的操作。
在一些实施例中,第一网络执行组件441可以被配置为,在计算设备105执行到被配置为在第二执行模式中执行的语法元素(例如,用于确定占位符的代码)时,跳过对这样的语法元素的执行,而不出现错误。
在一些实施例中,第二网络执行组件451可以被配置为在被执行时,使计算设备105基于输入数据,确定针对输入数据的第一计算图;以及基于第一计算图,对输入数据进行处理以获取输出数据。
具体地,由于在第二执行模式中,需要定义所输入的变量(也被称为“占位符”),因此第二网络执行组件451可以被配置为根据将要输入的数据的形状和类型,自动确定占位符,以用于生成计算图,然后计算设备105可以根据所生成的计算图,对所输入的数据执行相应的操作,以确定输出数据。在这种情况下,代码440中不必再包括被配置为在第二执行模式中执行的语法元素,实现不同执行模式中代码440的完全统一。
在一些实施例中,由于批(batch)数据在处理的过程中,其批大小(batch_size)可能发生变化,因此,第二网络执行组件451还可以被配置为以适应批大小的方式来设置占位符。这例如可以通过将用于占位符推断的函数的第一维度设置为可变维度来实现。
在一些实施例中,为了避免在诸如循环或者迭代执行的过程中,重复地构建对第二执行模式中所使用的计算图,第二网络执行组件451还可以被配置为在被计算设备105执行时,确定计算图构建标记的类型,如果该标记指示尚未构建计算图,则计算设备105确定针对输入数据的第一计算图,反之,则使用已经构建好的第一计算图而非再次构建计算图。类似的步骤也可以应用于其他包含计算图构建的过程。
在一些实施例中,上述网络执行组件可以被配置为根据输入数据的类型,执行相应的操作。
以此方式,计算设备105可以通过相同的语法元素,通过相同的组件接口实现对网络执行组件的调用,计算设备105可以根据所处的执行模式的不同,分别执行对应组件所包括的执行逻辑,以支持在不同执行模式下对输入数据进行处理。
在一些实施例中,网络构建组件的接口也可以按照类似的方式进行设计。在第一执行模式中,当对应于网络构建组件的语法元素被计算设备105执行时,计算设备105可以通过第一控制流组件来使用网络构建组件。在第二执行模式中,当对应于网络构建组件的语法元素被计算设备105执行时,计算设备105可以通过第二控制流组件来使用网络构建组件。
以此方式,计算设备105可以通过相同的语法元素,来在两种执行模式中使用诸如LSTM的、用于网络构建的组件。
图5示出了根据本公开的一些实施例的计算设备105执行网络优化组件的方法500的示意图。
网络优化组件被配置为对网络模型的待优化参数进行更新,例如,可以采用随机梯度下降算法(SGD),使得待优化参数朝向负梯度的方向进行更新。传统方案中,由于如上所讨论的第一执行模式与第二执行模式的差别(实时执行和分阶段执行),导致计算设备105需要通过不同的语法元素来实现对网络优化组件的调用。
根据本公开的实施例,可以将第一执行模式和第二执行模式所使用的网络优化组件设计为具有相同的组件接口,即相同的网络优化组件接口530。还可以将用于第一或第二执行模式中实现网络优化功能的方法封装到对应的组件541或551中,由此,代码510不必再包括与实现网络优化功能的方法相对应的不同语法元素。
在第一执行模式中,当对应于网络优化组件接口530的语法元素被计算设备105执行时,计算设备105可以使用第一组件540中的第一网络优化组件541对网络模型参数进行更新。
计算设备105例如可以通过代码510中的语法元素512,调用模式参数更新组件561,以将执行模式从第一执行模式切换为第二执行模式。
在第二执行模式中,当对应于网络优化组件接口530的语法元素被计算设备105执行时,计算设备105可以使用第二组件550中的第二网络优化组件551对网络模型参数进行更新。
在一些实施例中,第二网络优化组件和第一网络优化组件均调用诸如变换层组件,该变换层组件被配置为基于权重参数(例如,权重矩阵W),对输入数据进行操作,例如,该操作包括将输入数据与权重矩阵相乘的操作。
在一些实施例中,第一网络优化组件可以被配置为在被执行时,使计算设备105分开地(附加地或备选地,顺序地)执行如下步骤,并分别输出结果:确定网络模型参数所引起的损失;(例如,通过使用损失函数组件)确定与所述网络模型参数相关的梯度;以及(例如,通过使用被配置为定义每个时间步中执行的操作的时间步组件)确定更新的网络模型参数。
第二网络优化组件可以被配置为在被执行时,使计算设备105分开地(附加地或备选地,顺序地)执行如下步骤:步骤552,构建针对前向传播的第二计算图,以确定网络模型参数所引起的损失;步骤554,构建针对反向传播的第三计算图,以确定与网络模型参数相关的梯度;以及步骤556,构建针对网络模型参数更新的第四计算图,以确定更新的网络模型参数,以与计算设备105在执行第一网络优化组件所包括的步骤相对应。由此,可以实现在第二执行模式中,计算设备105可以分阶段输出结果以便于调试。
在一些实施例中,网络优化组件可以使用如上所述的网络执行组件,以简化计算设备105所需要读取的代码以及执行的步骤。例如,可以在损失函数的计算以及反向传播的梯度计算过程中,使用如上所述的网络执行组件。
在一些实施例中,计算设备105仅在第一轮迭代中执行上述步骤552-556中的构建计算图的步骤,在后续的迭代过程中,可以使用已经构建好的计算图,确定损失函数和/或梯度和/或更新的网络模型参数。
现在参考图6来详细说明上述步骤,图6示出了根据本公开的一些实施例的用于更新参数的计算图600的示意图。具体地,计算图600与上述步骤552-556相对应。可以理解的是,计算图600仅用于说明,在实践中,计算设备105根据代码确定的计算图可以包括更多和/或更少和/或不同的计算节点。例如,如果考虑到学习率调整,该计算图可以包括与学习率调整相关的节点。
计算图600可以包括前向传播部分652、反向传播部分654以及网络模型参数更新部分656。
在第二执行模式中,通过使用第二网络优化组件,计算设备105可以首先构建前向传播部分652的计算图(第二计算图),并利用该计算图进行相应操作以获得该部分的输出结果(例如,误差)。
具体地,待优化参数是偏置参数601(例如,偏置参数b)和权重参数602(例如,权重矩阵W),其可以通过初始化操作601和602来设置初始值。在计算图构建阶段,可以构建一个用于占位的占位符,该占位符可以在计算图执行阶段中,通过操作603输入输入数据607。然后,计算设备105可以通过操作614(例如,调用如上所述的变换层组件),计算网络模型的输出609,输出609例如可以将输入权重参数602与输入数据相乘,再与偏置参数601相加而获得的(即,W*x+b)。在计算图构建阶段,可以构建一个用于占位的占位符,通过操作604输入与输出609相对应的真实值610(这可以例如通过经标记的样本来获得)。在计算图执行阶段中,计算设备可以对输出609和真实值610进行操作619(例如,求均方差操作),获得网络模型的输出609和真实值610之间的损失611(有时也被称为误差),自此,前向传播部分结束。由此,计算设备105可以在第二执行模式中,通过调用第二网络优化组件获得损失611,以便于对前向传播过程的调整。
然后,通过使用第二网络优化组件,计算设备105可以构建反向传播部分654的计算图(第三计算图),并利用该计算图进行相应操作以获得该部分的输出结果(数据615和616)。
具体地,基于输出609、损失611、真实值610以及损失的梯度612,计算设备105可以通过执行操作613(例如,通过对于每个输入,计算所有输出相对于其的梯度和),获得指示输出609的梯度的数据620。基于偏置参数601、权重参数602、输入数据607、输出609以及数据613,计算设备105可以通过执行操作614,获得分别指示权重参数605和偏置参数606的梯度的数据615和616。自此,反向传播部分结束。由此,计算设备105可以在第二执行模式中,获得指示权重参数605和偏置参数606的梯度的数据615和616,以便于对反向传播过程的调整。
接着,通过使用第二网络优化组件,计算设备105可以构建网络模型参数更新部分656的计算图(第四计算图),并利用该计算图进行相应操作以获得输出结果,并基于该输出结果对网络模型的参数605和606进行更新。
具体地,基于数据615和616,计算设备可以分别执行例如操作617和618(其可以通过随机梯度下降SGD来执行),来更新权重参数601和偏置参数602。
回到参考图5,在一些实施例中,第一网络优化组件可以被配置为在被执行时,使计算设备105统一地执行如下步骤:确定网络模型参数所引起的损失;确定与所述网络模型参数相关的梯度;以及确定更新的网络模型参数以输出结果。这可以通过针对上述步骤定义统一的函数,并调用该函数来实现,以在调用该函数时,输出对应的结果。
传统方案中,在第二执行模式下,需要使用被配置为先根据计算图前向网络添加反向网络、再向计算图中添加梯度更新的算子的组件来确定计算图,然后使用执行组件对所确定的计算图进行相应计算。与之相比,根据本公开的实施例,计算设备105可以通过相同的语法元素,通过相同的组件接口实现对网络优化组件的调用,计算设备105可以根据所处的执行模式的不同,分别执行对应组件所包括的执行逻辑,以支持在不同执行模式下对网络模型参数进行优化。
图7根据本公开的一些实施例的计算设备105执行学习率调整组件的方法700的示意图。
传统方案中,由于如上所讨论的第一执行模式与第二执行模式的差别(实时执行和分阶段执行),导致计算设备105需要通过不同的语法元素来实现对网络优化组件的调用。在网络优化组件执行对网络模型的参数优化时,通常需要按照以下等式1来确定经更新的参数。
param_new=param-learning_rate*grad (等式1)
其中,param_new指代经更新的参数,param指代未更新的参数,learning_rate指代学习率,grad指代梯度。
可以理解的是,在网络模型的训练过程中,需要对学习率进行调整,通常训练的迭代的轮次越多,所需要的学习率越小。
根据本公开的实施例,可以将第一执行模式和第二执行模式所使用的学习率调整组件设计为具有相同的组件接口,即相同的学习率调整组件接口730。还可以将用于第二执行模式中实现学习率调整功能的方法封装到对应的组件751中,由此,代码710不必再包括与实现学习率调整功能的方法相对应的不同语法元素。
在第一执行模式中,当对应于学习率调整组件接口730的语法元素711被计算设备105执行时,计算设备105可以使用第一组件740中的第一学习率调整组件741对学习率进行调整。
计算设备105例如可以通过代码710中的语法元素712,调用模式参数更新组件761,以将执行模式从第一执行模式切换为第二执行模式。
在第二执行模式中,当对应于学习率调整组件接口730的语法元素713(例如,其与语法元素711相同)被计算设备105执行时,计算设备105可以使用第二组件750中的第二学习率调整组件751对学习率进行调整。
由于,在学习率的调整过程中,需要计算更新的学习率,这在第二执行模式中,需要通过设置对应的计算图节点,并将数据输入到该节点中来实现,其实现过程相对复杂,并且会造成一定的资源浪费。
在一些实施例中,第二学习率调整组件751被配置为当第二学习率调整组件被执行时,使计算设备105执行以下步骤:在步骤752,构建包括学习率节点的第五计算图,第五计算图不包括用于更新学习率的节点;在步骤754,接收学习率的更新值以作为学习率节点的输入;以及在步骤756基于第五计算图以及学习率的更新值,对学习率进行调整。
具体地,通过上述操作,计算设备105可以在第一次调用学习率调整组件(例如,学习率调整组件中所使用的如上所讨论的时间步组件)时,在生成第五计算图时,将原有的用于更新学习率的计算操作的节点,更改为输入学习率的节点,并输入初始的学习率。然后,计算设备105可以在后续轮次调用学习率调整组件(例如,时间步组件)时,将更新的学习率从外部传入给计算图的相应节点,以用于执行网络模型参数更新。其中,更新的学习率可以由过计算设备105执行诸如由python等语言写成的程序进行计算。
在一些实施例中,网络优化组件可以使用上述网络执行组件以及上述网络优化组件,以简化计算设备105所需要读取的代码以及执行的步骤。例如,
以此方式,可以简化计算设备105在计算学习率所需要执行的步骤,从而减少实现该计算需要的开销。
图8示出了根据本公开的实施例的用于构建深度学习的网络模型的装置800的示意框图。如图8所示,装置800可以包括执行模式确定模块802,被配置为基于模式参数,确定用于执行代码的执行模式。装置800还可以包括第一执行模块804,被配置为如果确定执行模式为第一执行模式,通过代码中的语法元素,使用能够在第一执行模式中使用的第一组件以执行代码。装置800还可以包括第二执行模块806,被配置为如果确定执行模式为第二执行模式,通过语法元素,使用能够在第二执行模式中使用的第二组件以执行代码;其中第一组件和第二组件具有相同的组件接口,语法元素对应于组件接口。
在一些实施例中,上述组件接口包括控制流组件接口,当对应于控制流接口的语法元素被装置执行时:第一执行模块804进一步被配置为在第一执行模式中,使用第一组件中的第一控制流组件;并且第二执行模块806进一步被配置为在第二执行模式中,使用第二组件中的第二控制流组件。
在一些实施例中,上述组件接口包括网络构建组件接口,当对应于网络构建组件的语法元素被装置执行时:第一执行模块804进一步被配置为在第一执行模式中,通过第一控制流组件来使用网络构建组件;并且第二执行模块806进一步被配置为在第二执行模式中,通过第二控制流组件来使用网络构建组件。
在一些实施例中,上述组件接口包括网络执行组件接口,当对应于网络执行组件接口的语法元素被装置执行时:第一执行模块804进一步被配置为在第一执行模式中,使用第一组件中的第一网络执行组件对输入数据进行处理以获取输出数据;并且第二执行模块806进一步被配置为在第二执行模式中,使用第二组件中的第二网络执行组件对输入数据进行处理以获取输出数据。
在一些实施例中,上述第二执行模块806进一步被配置为在第二组件中的第二网络执行组件被装置执行时:基于输入数据,确定针对输入数据的第一计算图;以及基于第一计算图,对输入数据进行处理以获取输出数据。
在一些实施例中,上述组件接口包括网络优化组件接口,当对应于网络优化组件接口的语法元素被装置执行时:第一执行模块804进一步被配置为在第一执行模式中,使用第一组件中的第一网络优化组件对网络模型参数进行更新;并且第二执行模块806进一步被配置为在第二执行模式中,使用第二组件中的第二网络优化组件对网络模型参数进行更新。
在一些实施例中,上述第二执行模块806进一步被配置为在第二网络优化组件被装置执行时:构建针对前向传播的第二计算图,以确定网络模型参数所引起的损失;构建针对反向传播的第三计算图,以确定与所述网络模型参数相关的梯度;以及构建针对梯度更新的第四计算图,以确定更新的网络模型参数。
在一些实施例中,上述组件接口包括学习率调整组件接口,当对应于学习率调整组件接口的语法元素被装置执行时:第一执行模块804进一步被配置为在第一执行模式中,使用第一组件中的第一学习率调整组件对学习率进行调整以用于更新网络模型参数;并且第二执行模块806进一步被配置为在第二执行模式中,使用第二组件中的第二学习率调整组件对学习率进行调整以用于更新网络模型参数。
在一些实施例中,上述第二执行模块806进一步被配置为当第二学习率调整组件被装置执行时:构建包括学习率节点的第五计算图,第五计算图不包括用于更新学习率的节点;接收学习率的更新值以作为学习率节点的输入;以及基于第五计算图以及学习率的更新值,对学习率进行调整。
在一些实施例中,上述第一执行模块804进一步被配置为:基于与语法元素相关联的输入数据,执行与第一组件相对应的第一操作以确定输出数据。
在一些实施例中,上述第二执行模块806进一步被配置为:利用与第二组件相对应的第二操作,确定计算图,计算图包括与多个计算操作相对应的多个网络节点;以及基于与语法元素相关联的输入数据,由执行组件利用计算图确定输出数据。
在一些实施例中,第一执行模式包括动态图模式,第二执行模式包括静态图模式。
根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
如图9所示,是根据本申请实施例的构建深度学习的网络模型的方法的电子设备900的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图9所示,该电子设备包括:一个或多个处理器901、存储器902,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器901为例。
存储器902即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的构建深度学习的网络模型的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的构建深度学习的网络模型的方法。
存储器902作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的构建深度学习的网络模型的方法对应的程序指令/模块(例如,附图8所示的地执行模式确定模块802、第一执行模块804、第二执行模块806)。处理器901通过运行存储在存储器902中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的构建深度学习的网络模型的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据构建深度学习的网络模型的电子设备的使用所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至构建深度学习的网络模型的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
构建深度学习的网络模型的方法的电子设备还可以包括:输入装置903和输出装置904。处理器901、存储器902、输入装置903和输出装置904可以通过总线或者其他方式连接,图9中以通过总线连接为例。
输入装置903可接收输入的数字或字符信息,以及产生与构建深度学习的网络模型的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置904可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
通过两种执行模式(例如,动静态图)接口统一的实现方式,开发者只需要编写一套代码,即可在两种执行模式下运行。计算设备可以利用该一套代码,在动态图模式和静态图模式下分别执行。以此方式,可以既保持动态图易于调试的优点,又保持静态图便于全局优化以及预测部署的优点,同时避免了需要重新编写代码或者对代码进行动静转换。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (27)
1.一种构建深度学习的网络模型的方法,包括:
基于模式参数,确定用于执行代码的执行模式;
如果确定所述执行模式为第一执行模式,通过所述代码中的语法元素,使用能够在所述第一执行模式中使用的第一组件以执行所述代码;以及
如果确定所述执行模式为第二执行模式,通过所述语法元素,使用能够在所述第二执行模式中使用的第二组件以执行所述代码,而不对所述代码进行转换;
其中,当所述语法元素中包括用于启用所述第二执行模式的语法元素时,则更新所述模式参数,以启用所述第二执行模式;以及当所述语法元素中包括用于禁用所述第二执行模式的语法元素时,则更新所述模式参数,以启用所述第一执行模式;
其中所述第一组件和所述第二组件具有相同的组件接口,所述语法元素对应于所述组件接口。
2.根据权利要求1所述的方法,其中所述组件接口包括控制流组件接口,
所述方法还包括:当对应于所述控制流组件接口的语法元素被执行时:
在所述第一执行模式中,使用所述第一组件中的第一控制流组件;以及
在所述第二执行模式中,使用所述第二组件中的第二控制流组件。
3.根据权利要求2所述的方法,其中所述组件接口包括网络构建组件接口,
所述方法还包括:当对应于所述网络构建组件的语法元素被执行时:
在所述第一执行模式中,通过所述第一控制流组件来使用网络构建组件;以及
在所述第二执行模式中,通过所述第二控制流组件来使用所述网络构建组件。
4.根据权利要求1所述的方法,其中所述组件接口包括网络执行组件接口,
所述方法还包括:当对应于所述网络执行组件接口的语法元素被执行时:
在所述第一执行模式中,使用所述第一组件中的第一网络执行组件对输入数据进行处理以获取输出数据;以及
在所述第二执行模式中,使用所述第二组件中的第二网络执行组件对输入数据进行处理以获取输出数据。
5.根据权利要求4所述的方法,还包括:所述第二组件中的第二网络执行组件被执行时:
基于所述输入数据,确定针对所述输入数据的第一计算图;以及
基于所述第一计算图,对所述输入数据进行处理以获取所述输出数据。
6.根据权利要求1所述的方法,其中,所述第一执行模式包括动态图模式,所述第二执行模式包括静态图模式。
7.根据权利要求6所述的方法,其中所述组件接口包括网络优化组件接口,
所述方法还包括:当对应于所述网络优化组件接口的语法元素被执行时:
在所述第一执行模式中,使用所述第一组件中的第一网络优化组件对网络模型参数进行更新;以及
在所述第二执行模式中,使用所述第二组件中的第二网络优化组件对网络模型参数进行更新。
8.根据权利要求7所述的方法,还包括:所述第二网络优化组件被执行时:
构建针对前向传播的第二计算图,以确定所述网络模型参数所引起的损失;
构建针对反向传播的第三计算图,以确定与所述网络模型参数相关的梯度;以及
构建针对网络模型参数更新的第四计算图,以确定更新的网络模型参数。
9.根据权利要求1所述的方法,其中所述组件接口包括学习率调整组件接口,
所述方法还包括:当对应于所述学习率调整组件接口的语法元素被执行时:
在所述第一执行模式中,使用所述第一组件中的第一学习率调整组件对学习率进行调整以用于更新网络模型参数;以及
在所述第二执行模式中,使用所述第二组件中的第二学习率调整组件对学习率进行调整以用于更新网络模型参数。
10.根据权利要求9所述的方法,还包括:当所述第二学习率调整组件被执行时:
构建包括学习率节点的第五计算图,所述第五计算图不包括用于更新所述学习率的节点;
接收所述学习率的更新值以作为所述学习率节点的输入;以及
基于所述第五计算图以及所述学习率的更新值,对所述学习率进行调整。
11.根据权利要求1所述的方法,其中使用所述第一组件来执行所述代码包括:
基于与所述语法元素相关联的输入数据,执行与所述第一组件相对应的第一操作以确定输出数据。
12.根据权利要求1所述的方法,其中使用所述第二组件来执行所述代码包括:
利用与所述第二组件相对应的第二操作,确定计算图,所述计算图包括与多个计算操作相对应的多个网络节点;以及
基于与所述语法元素相关联的输入数据,由执行组件利用所述计算图确定输出数据。
13.一种用于构建深度学习的网络模型的装置,包括:
执行模式确定模块,被配置为基于模式参数,确定用于执行代码的执行模式;
第一执行模块,被配置为如果确定所述执行模式为第一执行模式,通过所述代码中的语法元素,使用能够在所述第一执行模式中使用的第一组件以执行所述代码;以及
第二执行模块,被配置为如果确定所述执行模式为第二执行模式,通过所述语法元素,使用能够在所述第二执行模式中使用的第二组件以执行所述代码,而不对所述代码进行转换;
其中,当所述语法元素中包括用于启用所述第二执行模式的语法元素时,则更新所述模式参数,以启用所述第二执行模式;以及当所述语法元素中包括用于禁用所述第二执行模式的语法元素时,则更新所述模式参数,以启用所述第一执行模式;
其中所述第一组件和所述第二组件具有相同的组件接口,所述语法元素对应于所述组件接口。
14.根据权利要求13所述的装置,其中所述组件接口包括控制流组件接口,当对应于所述控制流组件接口的语法元素被所述装置执行时:
所述第一执行模块进一步被配置为在所述第一执行模式中,使用所述第一组件中的第一控制流组件;并且
所述第二执行模块进一步被配置为在所述第二执行模式中,使用所述第二组件中的第二控制流组件。
15.根据权利要求14所述的装置,其中所述组件接口包括网络构建组件接口,当对应于所述网络构建组件的语法元素被所述装置执行时:
所述第一执行模块进一步被配置为在所述第一执行模式中,通过所述第一控制流组件来使用网络构建组件;并且
所述第二执行模块进一步被配置为在所述第二执行模式中,通过所述第二控制流组件来使用所述网络构建组件。
16.根据权利要求13所述的装置,其中所述组件接口包括网络执行组件接口,当对应于所述网络执行组件接口的语法元素被所述装置执行时:
所述第一执行模块进一步被配置为在所述第一执行模式中,使用所述第一组件中的第一网络执行组件对输入数据进行处理以获取输出数据;并且
所述第二执行模块进一步被配置为在所述第二执行模式中,使用所述第二组件中的第二网络执行组件对输入数据进行处理以获取输出数据。
17.根据权利要求16所述的装置,其中所述第二执行模块进一步被配置为在所述第二组件中的第二网络执行组件被所述装置执行时:
基于所述输入数据,确定针对所述输入数据的第一计算图;以及
基于所述第一计算图,对所述输入数据进行处理以获取所述输出数据。
18.根据权利要求13所述的装置,其中所述第一执行模式包括动态图模式,所述第二执行模式包括静态图模式。
19.根据权利要求18所述的装置,其中所述组件接口包括网络优化组件接口,当对应于所述网络优化组件接口的语法元素被所述装置执行时:
所述第一执行模块进一步被配置为在所述第一执行模式中,使用所述第一组件中的第一网络优化组件对网络模型参数进行更新;并且
所述第二执行模块进一步被配置为在所述第二执行模式中,使用所述第二组件中的第二网络优化组件对网络模型参数进行更新。
20.根据权利要求19所述的装置,其中所述第二执行模块进一步被配置为在所述第二网络优化组件被所述装置执行时:
构建针对前向传播的第二计算图,以确定所述网络模型参数的所引起的损失;
构建针对反向传播的第三计算图,以确定与所述网络模型参数相关的梯度;以及
构建针对网络模型参数更新的第四计算图,以确定更新的所述网络模型参数。
21.根据权利要求13所述的装置,其中所述组件接口包括学习率调整组件接口,当对应于所述学习率调整组件接口的语法元素被所述装置执行时:
所述第一执行模块进一步被配置为在所述第一执行模式中,使用所述第一组件中的第一学习率调整组件对学习率进行调整以用于更新网络模型参数;并且
所述第二执行模块进一步被配置为在所述第二执行模式中,使用所述第二组件中的第二学习率调整组件对学习率进行调整以用于更新网络模型参数。
22.根据权利要求21所述的装置,其中所述第二执行模块进一步被配置为当所述第二学习率调整组件被所述装置执行时:
构建包括学习率节点的第五计算图,所述第五计算图不包括用于更新所述学习率的节点;
接收所述学习率的更新值以作为所述学习率节点的输入;以及
基于所述第五计算图以及所述学习率的更新值,对所述学习率进行调整。
23.根据权利要求13所述的装置,其中所述第一执行模块进一步被配置为:
基于与所述语法元素相关联的输入数据,执行与所述第一组件相对应的第一操作以确定输出数据。
24.根据权利要求13所述的装置,其中所述第二执行模块进一步被配置为:
利用与所述第二组件相对应的第二操作,确定计算图,所述计算图包括与多个计算操作相对应的多个网络节点;以及
基于与所述语法元素相关联的输入数据,由执行组件利用所述计算图确定输出数据。
25.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至12中的任一项所述的方法。
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如权利要求1至12中的任一项所述的方法。
27.一种计算机程序产品,包括计算机程序指令,其特征在于,所述计算机程序指令被处理器实现如权利要求1至12中的任一项所述的方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249391.2A CN112270403B (zh) | 2020-11-10 | 2020-11-10 | 构建深度学习的网络模型的方法、装置、设备和存储介质 |
JP2021141546A JP7223817B2 (ja) | 2020-11-10 | 2021-08-31 | 深層学習ネットワークモデルを構築する方法、装置、電子デバイス、記憶媒体およびコンピュータプログラム |
KR1020210124464A KR20210120938A (ko) | 2020-11-10 | 2021-09-17 | 딥 러닝의 네트워크 모델을 구축하기 위한 방법, 장치, 기기, 저장 매체 및 컴퓨터 프로그램 제품 |
US17/519,815 US20220058490A1 (en) | 2020-11-10 | 2021-11-05 | Method of constructing network model for deep learning, device, and storage medium |
EP21207420.7A EP3995950B1 (en) | 2020-11-10 | 2021-11-10 | Method and apparatus of constructing network model for deep learning, device, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011249391.2A CN112270403B (zh) | 2020-11-10 | 2020-11-10 | 构建深度学习的网络模型的方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112270403A CN112270403A (zh) | 2021-01-26 |
CN112270403B true CN112270403B (zh) | 2022-03-29 |
Family
ID=74340631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011249391.2A Active CN112270403B (zh) | 2020-11-10 | 2020-11-10 | 构建深度学习的网络模型的方法、装置、设备和存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220058490A1 (zh) |
EP (1) | EP3995950B1 (zh) |
JP (1) | JP7223817B2 (zh) |
KR (1) | KR20210120938A (zh) |
CN (1) | CN112270403B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157183B (zh) * | 2021-04-15 | 2022-12-16 | 成都新希望金融信息有限公司 | 深度学习模型构建方法、装置、电子设备及存储介质 |
WO2023125858A1 (zh) * | 2021-12-30 | 2023-07-06 | 本源量子计算科技(合肥)股份有限公司 | 一种数据处理方法、机器学习框架系统及相关设备 |
CN114742263B (zh) * | 2022-03-02 | 2024-03-01 | 北京百度网讯科技有限公司 | 负荷预测方法、装置、电子设备及存储介质 |
CN114863215A (zh) * | 2022-05-17 | 2022-08-05 | 北京百度网讯科技有限公司 | 基于深度学习框架生成静态图模型的方法及装置 |
CN115034960A (zh) * | 2022-06-23 | 2022-09-09 | 北京百度网讯科技有限公司 | 动态图转静态图的方法、装置、电子设备和存储介质 |
CN115809688B (zh) * | 2022-08-24 | 2023-10-24 | 北京百度网讯科技有限公司 | 一种模型调试方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423817A (zh) * | 2017-04-17 | 2017-12-01 | 星环信息科技(上海)有限公司 | 一种深度学习实现的方法及设备 |
CN107578453A (zh) * | 2017-10-18 | 2018-01-12 | 北京旷视科技有限公司 | 压缩图像处理方法、装置、电子设备及计算机可读介质 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
CN110502739A (zh) * | 2018-05-17 | 2019-11-26 | 国际商业机器公司 | 结构化输入的机器学习模型的构建 |
CN110569090A (zh) * | 2018-06-05 | 2019-12-13 | 中移(苏州)软件技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
WO2020060854A1 (en) * | 2018-09-19 | 2020-03-26 | Nec Laboratories America, Inc. | Dynamic graph analysis |
CN111144564A (zh) * | 2019-12-25 | 2020-05-12 | 上海寒武纪信息科技有限公司 | 对神经网络执行训练的设备及其集成电路板卡 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102508645B (zh) * | 2011-09-23 | 2016-02-10 | 武汉大学 | 一种面向行为的软件需求模型可视化方法 |
US20140351182A1 (en) | 2013-05-24 | 2014-11-27 | Qualcomm Incorporated | Modifying Learning Capabilities of Learning Devices |
JP2016029547A (ja) | 2014-07-25 | 2016-03-03 | 株式会社デンソー | 実行モジュール生成装置、及び電子制御装置 |
US20160358099A1 (en) | 2015-06-04 | 2016-12-08 | The Boeing Company | Advanced analytical infrastructure for machine learning |
JP2018173672A (ja) | 2015-09-03 | 2018-11-08 | 株式会社Preferred Networks | 実装装置 |
EP3502975A1 (en) | 2017-12-20 | 2019-06-26 | Fujitsu Limited | Methods and apparatus for model parallelism in artificial neural networks |
US20190317844A1 (en) * | 2019-06-26 | 2019-10-17 | Intel Corporation | Methods, systems, articles of manufacture and apparatus to select code data structure types |
-
2020
- 2020-11-10 CN CN202011249391.2A patent/CN112270403B/zh active Active
-
2021
- 2021-08-31 JP JP2021141546A patent/JP7223817B2/ja active Active
- 2021-09-17 KR KR1020210124464A patent/KR20210120938A/ko unknown
- 2021-11-05 US US17/519,815 patent/US20220058490A1/en active Pending
- 2021-11-10 EP EP21207420.7A patent/EP3995950B1/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107423817A (zh) * | 2017-04-17 | 2017-12-01 | 星环信息科技(上海)有限公司 | 一种深度学习实现的方法及设备 |
CN107578453A (zh) * | 2017-10-18 | 2018-01-12 | 北京旷视科技有限公司 | 压缩图像处理方法、装置、电子设备及计算机可读介质 |
CN108829441A (zh) * | 2018-05-14 | 2018-11-16 | 中山大学 | 一种分布式深度学习的参数更新优化系统 |
CN110502739A (zh) * | 2018-05-17 | 2019-11-26 | 国际商业机器公司 | 结构化输入的机器学习模型的构建 |
CN110569090A (zh) * | 2018-06-05 | 2019-12-13 | 中移(苏州)软件技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
WO2020060854A1 (en) * | 2018-09-19 | 2020-03-26 | Nec Laboratories America, Inc. | Dynamic graph analysis |
CN111144564A (zh) * | 2019-12-25 | 2020-05-12 | 上海寒武纪信息科技有限公司 | 对神经网络执行训练的设备及其集成电路板卡 |
Non-Patent Citations (2)
Title |
---|
Bitcoin Transaction Forecasting with Deep Network Representation Learning;Wenqi W.等;《IEEE Transactions on Emerging Topics in Computing》;20200720;第1-12页 * |
飞桨:源于产业实践的开源深度学习平台;马艳军 等;《数据与计算发展前沿》;20191031;第1卷(第1期);第105-115页 * |
Also Published As
Publication number | Publication date |
---|---|
KR20210120938A (ko) | 2021-10-07 |
EP3995950B1 (en) | 2024-05-15 |
US20220058490A1 (en) | 2022-02-24 |
JP2022000768A (ja) | 2022-01-04 |
CN112270403A (zh) | 2021-01-26 |
EP3995950A1 (en) | 2022-05-11 |
JP7223817B2 (ja) | 2023-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112270403B (zh) | 构建深度学习的网络模型的方法、装置、设备和存储介质 | |
KR102396936B1 (ko) | 문답 독해 모델 취득 방법, 장치, 전자 기기 및 저장 매체 | |
US10235140B2 (en) | Defining attributes of variables in a state chart of a technical computing environment | |
CN111967568B (zh) | 深度学习模型的适配方法、装置及电子设备 | |
KR20210114853A (ko) | 모델 파라미터를 업데이트하는 방법 및 장치 | |
KR20210035786A (ko) | 이종 그래프 노드를 표현하는 모델 생성 방법, 장치, 전자 기기, 저장 매체 및 프로그램 | |
JP7350923B2 (ja) | ディープラーニングフレームワークのオペレータ登録方法、装置、デバイス及び記憶媒体 | |
CN111275190B (zh) | 神经网络模型的压缩方法及装置、图像处理方法及处理器 | |
CN112734040A (zh) | 一种嵌入式人工智能计算框架及应用方法 | |
CN111966361B (zh) | 用于确定待部署模型的方法、装置、设备及其存储介质 | |
CN110705696B (zh) | 神经网络的量化与定点化融合方法及装置 | |
KR102695111B1 (ko) | 데이터 증강 방법, 장치, 기기 및 저장 매체 | |
EP3933712A1 (en) | Optimizer learning method and apparatus, electronic device and readable storage medium | |
US20220101194A1 (en) | Method, electronic device, and computer program product for processing machine learning model | |
CN114924862A (zh) | 利用整数规划求解器实现的任务处理方法、设备和介质 | |
CN111311000B (zh) | 用户消费行为预测模型训练方法、装置、设备及存储介质 | |
US9142184B1 (en) | Speed function module and numerical minimization module for an active contour model | |
CN111667428A (zh) | 基于自动搜索的噪声生成方法和装置 | |
CN116030235A (zh) | 目标检测模型训练方法、目标检测方法、装置和电子设备 | |
CN112560928B (zh) | 负样本挖掘方法、装置、电子设备及存储介质 | |
Harbert et al. | A graphical specification system for user-interface design | |
KR20200072910A (ko) | 딥러닝 프레임워크를 활용한 뉴럴 네트워크 구조 확장 방법 | |
CN116483482B (zh) | 深度学习任务处理方法、系统、装置、设备及介质 | |
CN114201154B (zh) | 算子生成方法和装置 | |
CN118409756A (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 |