修改计算图制造技术

技术编号:18580638 阅读:34 留言:0更新日期:2018-08-01 14:49
包括在计算机存储介质上编码的计算机程序的方法、系统和装置,用于修改计算图以包括发送节点和接收节点。通过将发送节点和接收节点插入到每个子图中,可以有效地处理执行计算图的不同子图的操作的独特设备之间的通信。当被执行时,这些发送节点和接收节点所代表的操作可以使得独特设备对能够以自给自足的方式彼此进行通信。这将协同通信的负担从后端移开,这为处理这种计算图表示的系统提供了在设备执行子图的同时执行一个或多个其他过程的机会。

Modification of a diagram

A method, system, and apparatus for modifying a computational diagram to include a sending node and a receiving node, including a computer program encoded on a computer storage medium. By inserting the sending node and the receiving node into each subgraph, the communication between the unique devices that perform the operation of the different subgraphs of the graph can be effectively processed. When executed, the operations represented by these sending and receiving nodes enable unique device pairs to communicate with each other in a self-sufficient manner. This puts the burden of cooperative communication away from the back end, which provides the opportunity to perform one or more other processes while the device executes a subgraph to handle the representation of the graph.

【技术实现步骤摘要】
【国外来华专利技术】修改计算图
技术介绍
本说明书涉及修改表示神经网络的计算图和/或经修改的计算图在处理模型输入中的应用。神经网络是机器学习模型,其采用一层或多层模型来为接收到的输入生成输出,例如一个或多个分类。一些神经网络除了输出层之外还包含一个或多个隐藏层。每个隐藏层的输出被用作网络中下一层(即网络的下一个隐藏层或输出层)的输入。网络中的每个层根据该层相应参数集的当前值从接收到的输入生成输出。神经网络的层可以由单个设备处理。该设备可以具有执行诸如从输入生成层的输出的操作的处理器,并且将来自该操作的输出存储在存储器中。由于通常需要在神经网络中生成输出的操作具有大的数量和大小,所以一个设备可能花费大量时间来处理神经网络的层。
技术实现思路
通常,本说明书描述了用于修改表示神经网络和其他机器学习模型的计算图的系统。本说明书中描述的主题的特定实施例可以被实现以便实现以下优点中的一个或多个。神经网络的操作(例如,从输入生成推理或训练神经网络的操作)可以表示为节点和有向边的计算图。系统处理这种计算图表示以有效地执行神经网络的操作。作为说明,可以将计算图的子图指派给独特的设备,其中的每个子设备在相应的子图中执行操作,以减少执行神经网络操作所需的总体时间。通过将发送节点和接收节点插入到每个子图中,可以有效地处理执行计算图的不同子图的操作的独特设备之间的通信。当被执行时,这些发送节点和接收节点表示的操作可以使得独特设备对能够以自给自足的方式彼此进行通信。这将协同通信的负担从后端移开,这为处理这种计算图表示的系统提供了在设备执行子图的同时执行一个或多个其他过程的机会。发送节点和接收节点用作以这样的方式划分子图,该方式允许神经网络或由这些子图表示的神经网络的一部分在一个设备上被训练,并且随后被分配给另一个设备。至少由于这些原因,将计算图修改为包括发送节点和接收节点对可以帮助减少以分布式方式处理计算图所需的时间成本以及网络通信量。在一个方面,本说明书中描述的主题可以体现在一种方法中,其可以包括获得表示计算图的数据的动作,该计算图包括多个节点和有向边,其中每个节点表示相应的操作,并且其中每个有向边将相应的第一节点连接到相应的第二节点,该相应的第二节点表示接收由相应的第一节点表示的操作的输出作为输入的操作;获得识别跨越多个设备的计算图的分配的数据,其中该分配将计算图中的每个节点指派给多个设备中的相应设备,识别计算图中的一个或多个跨设备有向边,其中每个跨设备有向边是将相应的第一节点连接到相应的第二节点的有向边,所述相应的第二节点在分配中被指派给与相应的第一节点不同的设备;并且对于每个跨设备有向边,在计算图中的相应的第一节点和相应的第二节点之间插入发送节点,在操作图中的发送节点和相应的第二节点之间插入接收节点,以及修改分配以将发送节点指派给与相应的第一节点相同的设备以及将接收节点指派给与相应的第二节点相同的设备;和根据所修改的分配将由计算图中的节点表示的操作指派给所述多个设备。这些方法可以是计算机实现的方法。在一个实施方式中,该方法还包括:接收模型输入;以及根据由修改的计算图表示的操作处理模型输入。另一方面,本说明书中描述的主题可体现在这样的方法中,其可包括提供与通过第一方面的方法获得的修改的计算图对应的机器学习模型的动作;并使用机器学习模型处理模型输入。处理可以构成对机器学习模型的训练,或者可以构成从模型输入生成推论。另一方面,本说明书中描述的主题可体现这样的方法中,其可包括由多个设备执行通过第一方面的方法获得的修改的计算图的动作。在这些方面中,计算图可以是机器学习模型的表示,诸如,例如神经网络。另一方面,本说明书中描述的主题可体现在这样的方法中,其可包括使用多个设备根据计算图处理模型输入,所述计算图包括多个节点和有向边,其中每个节点表示相应的操作,其中每个有向边将相应的第一节点连接到相应的第二节点,所述相应的第二节点表示接收由相应的第一节点表示的操作的输出作为输入的操作,其中所述方法包括对于所述多个设备中的第一设备:接收表示指派给第一设备的计算图的子图的数据,所述子图包括来自计算图的多个节点和有向边;并且执行由子图中节点表示的操作,包括:(1)执行由子图中的相应的第一节点表示的操作以生成第一输出;确定第一节点通过有向边连接到所述子图中的发送节点;以及执行由发送节点表示的操作以将由相应的第一节点表示的操作的第一输出传送到多个设备中的另一个设备;和/或(2)执行由子图中的接收节点表示的操作,以获得由指派给多个设备中的另一个设备的第二节点表示的操作的第二输出;确定接收节点通过有向边连接到子图中的第三节点;并且使用所获得的第二输出作为输入来执行由第三节点表示的操作。在这方面,计算图可以通过本专利技术另一方面的方法获得。这个和其他方面的其他实施方式包括被配置为执行编码在计算机存储设备(其可以是或者可以不是非暂时性存储设备)上的方法的动作的相应系统、装置和计算机程序。一个或多个计算机的系统可以通过安装在系统上的软件、固件、硬件或它们的组合来配置,在操作中使系统执行这些动作。一个或多个计算机程序可以借助于具有当数据处理装置执行时,使装置执行动作的指令来配置。这些其他版本可以分别包含一个或多个以下功能。例如,发送节点表示执行以下步骤的操作:(i)接收由相应的第一节点表示的操作的输出作为输入,并且(ii)将由相应的第一节点表示的操作的输出作为输出提供给接收节点;以及接收节点表示执行以下步骤的操作:(i)接收由发送节点表示的操作的输出作为输入,并且(ii)将由发送节点表示的操作的输出作为输出提供给相应的第二节点。在一些实施方式中,由接收节点表示的操作可进一步(iii)向发送节点提供将由发送节点表示的操作的输出作为输出的请求;以及由发送节点表示的操作可进一步(ii)响应于从接收节点接收到的一个或多个请求,将由相应的第一节点表示的操作的输出作为输出提供给接收节点。在一些示例中,由相应的第一节点表示的操作的输出可以包括张量。在一些实施方式中,获得识别跨多个设备的计算图的分配的数据可以包括获得识别跨一个或多个机器中包括的硬件资源的计算图的分配的数据。在这些实施方式中,发送节点和接收节点对中的每个节点例如可以表示操作,该操作接收根据与该发送节点和接收节点对被指派的每个硬件资源和机器对应的协议进行通信的对中的另一节点表示的操作的输出作为输入。在一些示例中,在计算图中的相应的第一节点和相应的第二节点之间插入发送节点还可以包括:对每个跨设备有向边,在发送节点和相应的第一节点之间插入有向边。另外,在操作图中的发送节点和相应的第二节点之间插入接收节点还可以包括:对每个跨设备有向边,在接收节点和相应的第二节点之间插入有向边。在一些实施方式中,在由多个设备执行由计算图表示的操作期间,由每个发送节点和接收节点对表示的操作可以允许多个设备独立地在多个设备中的设备之间通信由其他节点表示的操作的输入和输出的计算图。在一些示例中,数据可以在由发送节点和接收节点对中的每个节点表示的操作之间独立交换。在附图和下面的描述中阐述了本说明书的主题的一个或多个实施例的细节。主题的其他特征、方面和优点将从说明书、附图和权利要求中变得显而易见。应意识到,各方面和实施方式可以被组合,并且在一个方面或实施方式的上下文本文档来自技高网...

【技术保护点】
1.一种计算机实现的方法,包括:获得表示计算图的数据,所述计算图包括多个节点和有向边,其中每个节点表示相应操作,并且其中每个有向边将相应第一节点连接至相应第二节点,所述相应第二节点表示接收由所述相应第一节点表示的操作的输出作为输入;获得识别跨多个设备的所述计算图的分配的数据,其中所述分配将所述计算图中的每个节点指派给所述多个设备中的相应设备;识别在所述计算图中的一个或多个跨设备有向边,其中每个跨设备有向边是将相应第一节点连接到相应第二节点的有向边,所述相应第二节点在所述分配中被指派给与所述相应第一节点不同的设备;对于每个跨设备有向边:在所述计算图中的所述相应第一节点和所述相应第二节点之间插入发送节点,在所述操作图中的所述发送节点和所述相应第二节点之间插入接收节点,以及修改所述分配以将所述发送节点指派给与所述相应第一节点相同的设备以及将所述接收节点指派给与所述相应第二节点相同的设备;以及根据所修改的分配将由所述计算图中的节点表示的操作指派给所述多个设备。

【技术特征摘要】
【国外来华专利技术】2015.10.28 US 62/247,713;2015.11.09 US 62/253,0291.一种计算机实现的方法,包括:获得表示计算图的数据,所述计算图包括多个节点和有向边,其中每个节点表示相应操作,并且其中每个有向边将相应第一节点连接至相应第二节点,所述相应第二节点表示接收由所述相应第一节点表示的操作的输出作为输入;获得识别跨多个设备的所述计算图的分配的数据,其中所述分配将所述计算图中的每个节点指派给所述多个设备中的相应设备;识别在所述计算图中的一个或多个跨设备有向边,其中每个跨设备有向边是将相应第一节点连接到相应第二节点的有向边,所述相应第二节点在所述分配中被指派给与所述相应第一节点不同的设备;对于每个跨设备有向边:在所述计算图中的所述相应第一节点和所述相应第二节点之间插入发送节点,在所述操作图中的所述发送节点和所述相应第二节点之间插入接收节点,以及修改所述分配以将所述发送节点指派给与所述相应第一节点相同的设备以及将所述接收节点指派给与所述相应第二节点相同的设备;以及根据所修改的分配将由所述计算图中的节点表示的操作指派给所述多个设备。2.根据权利要求1所述的方法,其中:所述发送节点表示以下操作:(i)接收由所述相应第一节点表示的操作的输出作为输入,并且(ii)将由所述相应第一节点表示的操作的输出作为输出提供给所述接收节点;以及所述接收节点表示以下操作:(i)接收由所述发送节点表示的操作的输出作为输入,并且(ii)将由所述发送节点表示的操作的输出作为输出提供给所述相应第二节点。3.根据权利要求2所述的方法,其中,由所述相应第一节点表示的操作的输出是张量。4.根据权利要求2或3所述的方法,其中:由所述接收节点表示的操作进一步(iii)向所述发送节点提供将由所述发送节点表示的操作的输出作为输出的请求;以及由所述发送节点表示的操作进一步(ii)响应于从所述接收节点接收到的一个或多个请求,将由所述相应第一节点表示的操作的输出作为输出提供给所述接收节点。5.根据权利要求1、2、3或4所述的方法,其中,获得识别跨所述多个设备的所述计算图的所述分配的数据包括:获得识别跨在一个或多个机器中包括的硬件资源的所述计算图的分配的数据。6.根据权利要求5所述的方法,其中,发送节点和接收节点对中的每个节点表示操作,该操作接收根据与该发送节点和接收节点对被指派给的每个硬件资源和机器对应的协议进行通信的对中的另一节点表示的操作的输出作为输入。7.根据任一前述权利要求所述的方法,其中:在所述计算图中的所述相应第一节点和所述相应第二节点之间插入所述发送节点进一步包括对于每个跨设备有向边:在所述发送节点和所述相应第一节点之间插入有向边;以及在所述操作图中的所述发送节点和所述相应第二节点之间插入所述接收节点进一步包括对于每个跨设备有向边:在所述接收节点和所述相应第二节点之间插入有向边。8.根据任一前述权利要求所述的方法,其中,数据在由发送节点和接收节点对中的每个节点表示的操作之间独立交换。9.根据任一前述权利要求所述的方法,其中,在由所述多个设备执行由所述计算图表示的操作期间,由每个发送节点和接收节点对表示的操作允许所述多个设备在所述多个设备中的设备之间独立地通信由计算图中的其他节点所表示的操作的输入和输出。10.根据任一前述权利要求所述的方法,进一步包括:接收模型输入;以及根据由所修改的计算图表示的操作来处理所述模型输入。11.一种方法,包括:提供与由权利要求1至9中的任一项所述的方法获得的所修改的计算图对应的机器学习模型;并使用所述机器学习模型来处理模型输入。12.根据前述权利要求中的任一项所述的方法,其中,所述计算图是机器学习模型的表示。13.一种系统,包括:一个或多个数据处理装置;以及其上存储有指令的计算机可读存储设备,所述指令在由所述一个或多个数据处理装置执行时使所述一个或多个数据处理装置执行操作,所述操作包括:获得表示计算图的数据,所述计算图包括多个节点和有向边,其中每个节点表示相应操作,并且其中每个有向边将相应第一节点连接至相应第二节点,所述相应第二节点表示接收由所述相应第一节点表示的操作的输出作为输入;获得识别跨多个设备的所述计算图的分配的数据,其中所述分配将所述计算图中的每个节点指派给所述多个设备中的相应设备;识别在所述计算图中的一个或多个跨设备有向边,其中每个跨设备有向边是将相应第一节点连接到相应第二节点的有向边,所述相应第二节点在所述分配中被指派给与所述相应第一节点不同的设备;对于每个跨设备有向边:在所述计算图中的所述相应第一节点和所述相应第二节点之间插入发送节点,在所述操作图中的所述发送节点和所述相应第二节点之间插入接收节点,以及修改所述分配以将所述发送节点指派给与所述相应第一节点相同的设备以及将所述接收节点指派给与所述相应第二节点相同的设备;以及根据所修改的分配将由所述计算图中的节点表示的操作指派给所述多个设备。14.根据权利要求13所述的系统,其中:所述发送节点表示以下操作:(i)接收由所述相应第一节点表示的操作的输出作为输入,并且(ii)将由所述相应第一节点表示的操作的输出作为输出提供给所述接收节点;以及所述接收节点表示以下操作:(i)接收由所述发送节点表示的操作的输出作为输入,并且(ii)将由所述发送节点表示的操作的输出作为输出提供给...

【专利技术属性】
技术研发人员:维贾伊·瓦苏德万杰弗里·阿德盖特·迪恩桑贾伊·格赫玛瓦特
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1