增强神经网络的制作方法

文档序号:20686500发布日期:2020-05-08 18:52阅读:183来源:国知局
增强神经网络的制作方法

相关申请的交叉引用

本申请要求于2017年9月15日提交的美国专利申请no.62/559,463的优先权,其全部内容通过引用合并于此。



背景技术:

本说明书涉及使用神经网络处理输入。

机器学习模型接收输入,并基于接收到的输入生成输出,例如,预测输出。一些机器学习模型是参数模型,并且基于接收到的输入和模型的参数的值生成输出。

一些机器学习模型是采用多层模型对于接收到的输入生成输出的深度模型。例如,深度神经网络是包括输出层和一个或多个隐藏层的深度机器学习模型,每个隐藏层将非线性变换应用于接收到的输入以生成输出。

一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从输入序列生成输出序列的神经网络。特别地,递归神经网络使用在处理输入序列中的先前输入之后的网络的内部状态的部分或全部来从输入序列中的当前输入生成输出。



技术实现要素:

本说明书描述一种实施为在一个或多个位置的一个或多个计算机上的计算机程序的系统如何利用由不同的、单独的已训练的神经网络执行的操作来增强表示神经网络操作的计算图。

可以实施本说明书中描述的主题的特定实施方式,以实现以下优点中的一个或多个。用户计算图可以利用已训练的神经网络来增强,使得当系统执行用户计算图时,在执行过程中在适当点处执行已训练的神经网络的操作,但是已训练的神经网络的架构和已训练的参数值对用户不透明。因此,系统可以提供预训练的神经网络的库的功能,而无需向系统的用户公开神经网络的操作的细节。这可以使用户与系统进行交互以指定用户计算图的过程更加直接和省时,因为用户不必指定用户计算图内的低级神经结构以执行由预训练的网络执行的功能。因此,本公开使得改进的用户界面成为可能。

此外,因为神经网络可能已经被完全或部分地训练,所以系统可以减少训练用户神经网络所需的计算资源,即,因为多个用户计算图可以利用相同的已训练的神经网络而无需为每个用户从头开始重新训练已训练的神经网络。

此外,通过将预训练的最新神经网络合并到用户计算图中,可以提高用户神经网络的性能,而无需系统分配额外资源来训练用户神经网络或无需在网络上与用户之间传输大量数据,即,训练数据。

本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。从说明书、附图和权利要求中,主题的其他特征、方面和优点将变得显而易见。

附图说明

图1示出示例计算图系统。

图2是用于增强用户计算图的示例过程的流程图。

图3示出示例增强用户计算图。

在各个附图中,相似的参考数字和名称指示相似的元素。

具体实施方式

本说明书总体上描述一种将机器学习模型维护为计算图的计算图系统。

计算图包括通过有向边连接的节点。计算图中的每个节点表示一个操作。节点的传入边表示到节点的输入流,即,由节点表示的操作的输入。来自节点的输出边表示由节点表示的操作的输出流以用作由另一节点表示的操作的输入。因此,将图中的第一节点连接到图中的第二节点的有向边指示由第一节点表示的操作生成的输出用作由第二节点表示的操作的输入。

通常,沿着计算图中的有向边流动的输入和输出是张量。张量是数字或其他值(例如,字符串)的多维数组,该数组具有对应于该数组的维数的特定阶数。例如,标量值是0阶张量,数值的矢量是1阶张量,矩阵是2阶张量。

如上所指示的,给定计算图中表示的操作是神经网络操作或用于不同种类的机器学习模型的操作。神经网络是采用一层或多层非线性单元来针对接收到的输入预测输出的机器学习模型。一些神经网络是除了输出层外还包括一个或多个隐藏层的深度神经网络。每个隐藏层的输出用作网络中的另一层(即,另一隐藏层、输出层或两者)的输入。网络的一些层根据相应参数集的当前值从接收到的输入生成输出,而网络的其他层可能没有参数。

例如,由计算图表示的操作可以是神经网络计算推断所必需的操作,即,通过神经网络的层处理输入以对于该输入生成神经网络输出。作为另一示例,由计算图表示的操作可以是通过执行神经网络训练过程以调整神经网络的参数的值(例如,从参数的初始值确定参数的已训练值)来训练神经网络所必需的操作。在一些情况下,例如,在神经网络的训练期间,由计算图表示的操作可以包括由神经网络的多个副本执行的操作。

作为例证,从前一层接收输入的神经网络层可以使用参数矩阵来执行参数矩阵与该输入之间的矩阵乘法。在一些情况下,此矩阵乘法可以表示为计算图中的多个节点。例如,矩阵乘法可以划分为多个乘法和加法运算,并且每个运算可以由计算图中的不同节点表示。由每个节点表示的操作可以生成相应的输出,该输出在有向边上流向后续节点。在由最后节点表示的操作生成矩阵乘法的结果之后,该结果在有向边上流向另一个节点。该结果等同于执行矩阵乘法的神经网络层的输出。

在另一些情况下,矩阵乘法被表示为计算图中的一个节点。由节点表示的操作可以接收第一有向边上的输入张量和第二有向边上的权重张量(例如,参数矩阵)作为输入。该节点可以处理输入张量和权重张量(例如,执行输入张量和权重张量的矩阵乘法),以在第三有向边上输出与神经网络层的输出等同的输出张量。

可以由计算图中的节点表示的其他神经网络操作包括其他数学运算,例如,减法、除法和梯度计算;数组运算,例如,级联、拼接、分割或排序;神经网络构件块运算,例如softmax、sigmoid、修正线性单元(relu)或卷积。

图1示出示例计算图系统100。该系统100是被实施为在一个或多个位置的一个或多个计算机上的计算机程序的系统的示例,其中可以实现以下所述的系统、组件和技术。

通常,计算图系统100维护用户计算图140并在可用于该系统的设备(例如,设备116-122)上执行用户计算图。设备116-122可以是能够执行神经网络操作的各种设备(例如,图形处理单元(gpu)、中央处理单元(cpu)或专用神经网络硬件加速器)中的任何设备。

例如,系统100可以维护允许用户创建并上传表示由系统100执行的神经网络操作的计算图的框架。将神经网络操作指定为计算图的框架的示例是tensorflow框架,如abadi等的tensorflow:异构分布式系统上的大规模机器学习(tensorflow:large-scalemachinelearningonheterogeneousdistributedsystems)中所述,该文可在https://arxiv.org/abs/1603.04467处获得。

用户设备106的用户可以例如使用框架并通过数据通信网络114请求要在表示神经网络操作的计算图上执行的操作。为了执行这些操作,执行计算图。作为请求的一部分,用户设备106向系统100提供识别计算图的数据,即,识别来自所维护的用户计算图140的特定计算图或要添加到所维护的用户计算图140的新计算图的数据,并指定要在计算图上执行的操作的类型。

例如,请求可以识别表示执行用于特定神经网络的推断(即,使用特定神经网络生成输出)所必需的操作的计算图,并且可以识别应当对其执行推断的输入。

作为另一示例,请求可以识别表示用于特定神经网络的训练过程的计算图,并且可以识别应当对其执行训练的输入,即,训练数据。也就是说,该图包括使用特定神经网络执行推断所必需的操作,以及使用训练过程来确定对神经网络的参数的更新所必需的操作。在该示例中,当接收到处理表示训练过程的计算图的请求时,系统100可以通过执行计算图来确定神经网络的参数的修改值。

在一些情况下,请求可以指定应当响应于该请求而发送的响应。例如,对于神经网络训练请求,用户设备106可以请求所请求的神经网络训练操作已经完成的指示,以及可选地,神经网络的参数的已训练值,或者用户设备106从其中可以访问已训练值的存储器位置的指示。作为另一示例,对于神经网络推断请求,用户设备106可以从所识别的计算图的一个或多个特定输出节点请求表示推断操作的输出值。

系统100然后可以执行请求,即,通过对所识别的输入执行所识别的计算图,并且如果被请求,则将响应提供给用户设备。特别地,一旦用户上传或创建了用户计算图,该用户就能够通过提供输入数据作为对系统100进行应用编程接口(api)调用的一部分,通过数据通信网络114向系统100提交请求。响应于api调用,系统100可以通过执行用户计算图来生成输出,并通过数据通信网络114将该输出发送给用户设备106。

系统100还维护已训练的神经网络150的集合。集合中的每个已训练的神经网络是已经对训练数据进行训练以确定神经网络的参数的已训练值的神经网络。通常,每个已训练的神经网络被配置为执行相应的机器学习任务,即,接收相应类型的网络输入并生成相应类型的网络输出。

例如,可能已经训练了集合中的一个或多个神经网络以对输入图像进行分类,例如,以接收特定大小(即,颜色值的x×y×z张量)的输入图像,并生成包括用于多个对象类别中的每个对象类别的相应分值的输出矢量。

作为另一示例,可能已经训练了集合中的一个或多个神经网络以生成特定类型的输入(例如,单词、短语、图像或视频)的嵌入。嵌入是输入在嵌入空间中的数字表示,例如,浮点值的矢量或量化的浮点值的矢量。

作为另一示例,可能已经训练了集合中的一个或多个神经网络以将源语言中的文本序列翻译成目标语言中的文本序列。

对于每个已训练的神经网络,维护的数据包括足够的数据,以供系统根据神经网络的参数的已训练值来处理已训练的神经网络的输入,即,指定已训练的数据神经网络的架构和神经网络的参数的已训练值的数据。因为系统被配置为通过执行计算图来执行计算,所以维护的数据通常足以使系统实例化表示已训练的神经网络的计算图。例如,所维护的数据可以包括结构化格式(例如,协议缓冲器)的数据,其针对计算图的每个节点识别该节点的输入和输出以及由该节点执行的计算。

系统100还包括图增强引擎130,其响应于用户请求利用预训练的神经网络150来增强用户计算图140。也就是说,图增强引擎130可以修改用户计算图以还包括由来自集合的预训练的神经网络150执行的操作。

特别地,如将在下面更详细地描述的,图增强引擎130可以通过将节点插入到用户计算图中来增强用户计算图,该计算图在被执行时向预训练的神经网络提供输入,从预训练的神经网络获得输出,并且然后将该输出提供为用户计算图中的节点的输出,即,提供给通过用户计算图中的边连接到该节点的另一个节点,或提供为用户计算图的输出。

图2是用于增强计算图以包括已训练的神经网络的示例过程200的流程图。为了方便起见,过程200将被描述为由位于一个或多个位置的并且根据本说明书被适当地编程的一个或多个计算机的系统执行。例如,被适当编程的计算图系统(例如,图1的计算图系统100)可以执行过程200。

系统维护指定已训练的神经网络的集合的数据(步骤202)。

如上所述,集合中的每个已训练的神经网络是已经对训练数据进行训练以确定神经网络的参数的已训练值的神经网络。通常,每个训练的神经网络被配置为执行相应的机器学习任务,即,接收相应类型的网络输入并生成相应类型的网络输出。

系统从系统的用户获得表示节点和有向边的用户计算图的数据(204)。例如,用户可以通过数据通信网络将计算图数据从用户设备上传到系统。作为另一示例,系统可以向用户设备呈现用户界面,用户可以通过该用户界面提交指定计算图的输入,即,定义用户计算图的节点和边的输入。

用户计算图是要由系统维护和执行的计算图,即,要由系统在由系统管理并且通常远离用户的用户设备的设备上执行的计算图。“远程”设备是指在第一设备(例如,用户设备)外部(例如,在与第一设备的外壳分开的外壳内)具有处理器的设备。通常,远程设备通过通信网络与第一设备进行通信,并且/或者它包括基于第一设备中未使用的时钟信号进行操作的处理器。

例如,当用户计算图是表示神经网络推断操作(即,用于通过神经网络处理一个或多个网络输入以生成用于每个网络输入的相应的网络输出的操作)的计算图时,用户可以向系统提供网络输入以通过神经网络进行处理。然后,系统可以对每个网络输入执行由用户计算图指定的操作,以生成网络输出,然后将网络输出提供给用户。

作为另一个示例,当用户计算图是表示神经网络训练操作(即,用于对训练数据训练神经网络的操作)的计算图时,用户可以通过网络向系统提供训练数据,并且系统可以通过执行计算图对训练数据训练神经网络。一旦训练了神经网络,系统就可以向用户提供指定神经网络的已训练参数值的数据,或者可以针对已训练的神经网络执行推断图,以生成用于由用户提供的网络输入的网络输出。

系统确定需要利用已训练的神经网络的集合中的已训练的神经网络之一来增强用户计算图(206)。

在一些实施方式中,系统至少部分地基于用户输入来做出该确定。例如,用户可以将输入提交给系统,该输入指定用户计算图中的插入点,即,生成应该提供作为已训练的神经网络的输入的输出的用户计算图中的源节点以及用于已训练的神经网络(即,用户计算图中的另一个节点)的输出或用户计算图的输出的目的地。在一些示例中,系统然后可以呈现用户界面,该用户界面允许用户从集合中的已训练的神经网络中选择神经网络,以在插入点处将其添加到用户计算图。在其他示例中,系统可以分析已训练的神经网络的集合,以识别集合中符合插入点的任何神经网络。如果神经网络采用具有与由用户计算图中的源节点生成的输出张量相同的维度和大小的输入并且生成具有与用户计算图中的目的地所需的维度和大小相同的输出,则该神经网络符合插入点。

在一些实施方式中,系统可以分析用户计算图并识别用户计算图的一部分,即,一个或多个节点的子图,该部分应由已训练的神经网络的集合中的神经网络之一替换。例如,系统可以分析子图的用户计算图,这些子图生成输出并接收与计算图中的已训练过的神经网络的输出和输入相符的输入。在这些实施方式中,插入点将是所识别的子图的输入边与所识别子图的输出边之间的连接。然后,系统可以提示用户利用已训练的神经网络替换用户计算图的所识别的子图。

系统利用已训练的神经网络来增强用户计算图(208)。

通常,系统利用已训练的神经网络来增强用户计算图,使得当系统执行用户计算图时(例如,通过将数据输入到用户计算图中;用户计算图的数据输入被称为“图输入”),在执行过程中,在适当的点执行已训练的神经网络的操作,但是已训练的神经网络的架构和已训练的参数值对用户而言并不透明。也就是说,系统可能无法向用户传输足够的数据或使用户访问足够的数据以确定架构和/或已训练的参数值。实际上,优选地,系统例如根本不向在用户界面中查看用户计算图的表示的用户输出足够的这种数据。

特别地,系统在用户计算图中的插入点处包括对已训练的神经网络的引用。在用户计算图运行时,系统解析该引用以将用户计算图绑定到表示已训练的神经网络的图的输入节点,即,使得由用户计算图中的特定节点作为输出生成的张量作为输入提供给表示已训练的神经网络的图中的输入节点,并且由表示已训练的神经网络的图中的输出节点生成的输出张量作为输入提供给用户计算图中的适当节点,或者,在一些情况下,被提供作为用户计算图的输出。

在一些实施方式中,所包括的引用是在插入点处插入到用户计算图中的远程调用节点。计算图中的远程调用节点是这样的节点,该节点当该计算图被执行时接收沿传入边流向远程调用节点的输入,并利用该输入发出远程调用。如本说明书中所使用的,远程调用是触发系统执行计算图的请求,该计算图(i)由远程调用识别,(ii)与其中包括远程调用节点的图不同,并且(iii)把包括的张量和远程调用作为输入,并且响应于该请求而返回执行计算图的结果,即,所识别的计算图中的一个或多个特定输出节点的输出。然后,远程调用节点等待,直到响应于远程调用而从远程图接收到输出为止,并且沿着远程调用节点的输出边提供接收到的输出。特别地,远程图是表示已训练的神经网络的计算图。因此,由于远程调用节点调用远程图并从远程图接收输出,因此当访问(即,查看)其中包括远程调用节点的用户计算图时或在提交要由用户计算图处理的输入时,由远程图执行的节点结构和操作不可用。在一些实施方式中,远程调用节点通过指向表示已训练的神经网络的图的图标识符和用于执行所识别的图的生产环境来识别已训练的神经网络。

在一些实施方式中,系统维护表示已训练的神经网络的计算图的单个实例,并将来自多个用户计算图的请求解析为相同的实例。在其他实施方式中,系统将来自每个用户计算图的请求解析为表示已训练的神经网络的计算图的不同实例。

系统接收执行用户计算图的请求(步骤210)。例如,系统可以接收网络输入和生成用于网络输入的网络输出的请求。

系统执行利用已训练的神经网络增强的用户计算图(步骤212)。

也就是说,系统执行用户计算图,并且由于用户计算图包括对已训练的神经网络的引用,因此该执行使所包括的引用(例如,远程调用节点)的输入张量传递给已训练的神经网络,并将由已训练的神经网络生成的输出作为输入传递给用户计算图的适当部分。

特别地,当系统接收到识别已训练的神经网络的调用时,系统可以远离用户计算图的执行,对输入张量执行表示已训练的神经网络的计算图(“远程图”)以生成输出张量,并且然后响应于远程调用而提供输出张量。

通常,当用户计算图是用于训练神经网络的计算图(“训练图”)时,系统将在训练过程期间(即,在执行训练图期间)调整神经网络的参数的值。特别地,训练图通常包括用于基于接收到的输入根据神经网络的当前参数值来计算输出的前向路径以及用于基于所生成的输出和用于所生成的输入的已知输出之间的损失来更新当前参数值的后向路径。当用户计算图是训练图时,系统可以在用户训练图的前向路径和后向路径中的适当点处插入调用节点。

在一些实施方式中,系统在训练图的执行期间保持已训练的神经网络的参数固定。

在其他实施方式中,系统还可以调整已训练的神经网络的参数的值。例如,系统可以利用来自用户计算图的其余部分的减小的学习率训练已训练的神经网络以进行“微调”。作为另一个示例,系统可以利用相同的学习率训练已训练的神经网络。系统可以通过传递作为远程调用的梯度值作为通过远程图的后向/训练路径的输入并且将来自远程图的梯度值提供作为通过用户计算图的后向路径中的适当位置的输入,来训练已训练的神经网络。在这些情况下,通过微调已经训练过的神经网络,系统可以允许针对用户指定的训练数据和任务定制已训练的神经网络的性能,同时仍能利用由预训练提供的已高质量的性能。另外,改进了用户计算图的性能,而已训练的神经网络的原始参数值或微调参数值对用户不透明。

图3示出已经利用远程调用节点306增强的示例计算图300。除了远程调用节点306之外,计算图还包括节点302、310、312、314和316。作为简化示例,计算图系统(例如,图1的系统100)可以接收来自用户的请求,以给定输入集使用计算图来计算推断。特别地,客户端可以请求示例计算图300的节点316的输出。可以在到图300的节点302的有向边上提供输入集。

在示例计算图300的执行期间,远程调用节点接收作为节点302的输出而生成的输入张量305,并且提供输出张量370作为节点310的输入。特别地,在接收到输入张量305时,远程调用节点320向表示已训练的神经网络350的图发出远程调用。在图3的示例中,已训练的神经网络350是卷积神经网络,其接收输入张量305并生成输出张量370,例如,输入张量305的分类或嵌入。

在从已训练的神经网络350接收到输出张量370时,远程调用节点306提供输出张量370作为节点310的输入。由于调用是远程的,即,对于用户计算图来说不是本地的,因此用户计算图的所有者不了解架构和已训练的参数值。

本说明书结合系统和计算机程序组件使用术语“已配置”。对于一个或多个要被配置为执行特定操作或动作的计算机的系统,意味着该系统已在其上安装了软件、固件、硬件或它们的组合,这些软件、固件、硬件或它们的组合在操作中使系统执行这些操作或动作。对于要被配置为执行特定操作或动作的一个或多个计算机程序,意味着该一个或多个程序包括指令,该指令在由数据处理装置执行时使该装置执行该操作或动作。

本说明书中描述的主题和功能操作的实施例可以在数字电子电路中、在有形体现的计算机软件或固件中、在计算机硬件中(包括在本说明书中公开的结构及其等同结构)、或它们中的一种或多种的组合中实施。本说明书中描述的主题的实施例可以被实施为一个或多个计算机程序,即,在有形的非暂时性存储介质上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理装置的操作。计算机存储介质可以是机器可读存储设备、机器可读存储基质、随机或串行访问存储设备或它们中的一种或多种的组合。可替代地或另外,程序指令可以被编码在人工生成的传播信号(例如,机器生成的电、光或电磁信号)上,该信号被生成以对信息进行编码以传输到合适的接收器装置,以由数据处理装置来执行。

术语“数据处理装置”是指数据处理硬件,并且包括用于处理数据的各种装置、设备和机器,例如,包括可编程处理器、计算机或多个处理器或计算机。该装置还可以是或进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件之外,该装置可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一种或多种的组合的代码。

可以以任何形式的编程语言(包括编译或解释语言、声明性或过程性语言)来编写计算机程序,计算机程序也可以被称为或描述为程序、软件、软件应用、应用、模块、软件模块、脚本或代码;它可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程或适用于计算环境的其他单元进行部署。程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,存储在专用于所讨论的程序的单个文件中或存储在多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以部署计算机程序以在位于一个站点上或分布在多个站点上并通过数据通信网络互连的一台计算机或多台计算机上执行。

在本说明书中,术语“数据库”被广泛地用于指代任何数据集合:该数据不需要以任何特定的方式来构造,或者根本不需要被构造,并且可以将其存储在一个或多个位置处的存储设备中。因此,例如,索引数据库可以包括多个数据集合,每个数据集合可以被不同地组织和访问。

类似地,在本说明书中,术语“引擎”广泛用于指代被编程以执行一个或多个特定功能的基于软件的系统、子系统或过程。通常,引擎将被实现为安装在一个或多个位置处的一台或多台计算机上的一个或多个软件模块或组件。在某些情况下,一台或多台计算机将专用于特定引擎;在其他情况下,可以在相同的一台或多台计算机上安装并运行多个引擎。

本说明书中描述的过程和逻辑流程可以由一个或多个可编程计算机来执行,该一个或多个可编程计算机执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流程还可以由专用逻辑电路(例如,fpga或asic)执行,或者由专用逻辑电路和一个或多个编程计算机的组合来执行。

适用于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。中央处理单元和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁性、磁光盘或光盘),或可操作地耦合以从一个或多个大容量存储设备(例如,磁性、磁光盘或光盘)接收数据或将数据传输到上述一个或多个大容量存储设备,或两者。但是,计算机不必具有此类设备。此外,计算机可以被嵌入到另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备,例如,通用串行总线(usb)闪存驱动器,仅举几例。

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及cdrom和dvd-rom光盘。

为了提供与用户的交互,本说明书中描述的主题的实施例可以在具有显示设备以及键盘和指示设备的计算机上实施,该显示设备例如是crt(阴极射线管)或lcd(液晶显示器)监视器,用于向用户显示信息;所述键盘和指示设备例如是鼠标或轨迹球,用户可以通过所述键盘和指示设备向计算机提供输入。其他种类的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档以及从用户使用的设备接收文档来与用户进行交互;例如,通过响应从网络浏览器收到的请求,将网页发送到用户设备上的web浏览器。而且,计算机可以通过将文本消息或其他形式的消息发送到个人设备(例如,运行消息收发应用的智能手机)并且反过来从用户接收响应消息来与用户交互。

用于实现机器学习模型的数据处理设备还可以包括例如专用硬件加速器单元,用于处理机器学习训练或生产(即,推断、工作负载)的公共部分和计算密集部分。

可以使用机器学习框架(例如,tensorflow框架、microsoftcognitivetoolkit框架、apachesinga框架或apachemxnet框架)来实现和部署机器学习模型。

本说明书中描述的主题的实施例可以在包括后端组件(例如,作为数据服务器)、或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有图形用户界面、web浏览器或应用的客户端计算机,用户可通过其与本说明书中描述的主题的实施进行交互)或者包括一个或多个此类后端、中间件或前端组件的任意组合的计算系统中实施。系统的组件可以通过数字数据通信的任何形式或媒介(例如,通信网络)互连。通信网络的示例包括局域网(lan)和广域网(wan),例如,互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系是通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序产生的。在一些实施例中,服务器向用户设备发送数据,例如,html页面,例如,用于向与充当客户端的设备交互的用户显示数据并从该用户接收用户输入。可以在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。

尽管本说明书包含许多特定的实施细节,但是这些细节不应被解释为对任何发明的范围或所要求保护的内容的范围的限制,而应解释为对特定于特定发明的特定实施例的特征的描述。在单独的实施例的上下文中在本说明书中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分别实施,或以任何合适的子组合来实施。而且,尽管以上可以将特征描述为以某些组合起作用并且甚至最初是这样主张的,但是在一些情况下,可以从该组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合指向子组合或子组合的变体。

类似地,尽管以特定次序在附图中描绘了操作并在权利要求中对其进行了叙述,但这不应理解为要求以所示的特定次序或以顺序次序执行这些操作,或者要求执行所有图示的操作,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。而且,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以被一起集成在单个软件产品中,或封装成多个软件产品。

已经描述了主题的特定实施例。其他实施例处于所附权利要求的范围内。例如,权利要求中叙述的动作可以以不同的次序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的过程不一定需要所示的特定次序或顺序次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1