使用视觉输入进行代理导航的制作方法

文档序号:18744494发布日期:2019-09-21 02:10阅读:198来源:国知局
使用视觉输入进行代理导航的制作方法

本说明书涉及环境中的代理(agent)导航。



背景技术:

使用视觉输入在环境中对代理(例如机器人)进行导航需要处理视觉输入以提取关于环境的信息并考虑到提取的关于环境的信息来选择适当的行动。一些系统使用神经网络来选择待由代理执行的行动。

神经网络是采用一个或多个非线性单元层来为接收的输入预测输出的机器学习模型。除了输出层之外,一些神经网络还包括一个或多个隐藏层。每个隐藏层的输出用作网络中下一层的输入,即下一个隐藏层或输出层的输入。网络的每个层根据相应参数集合的当前值从接收的输入生成输出。

一些神经网络是循环神经网络。循环神经网络是接收输入序列并从输入序列生成输出序列的神经网络。具体地,循环神经网络能够使用来自先前时间步的网络的内部状态中的一些或全部来计算当前时间步的输出。循环神经网络的示例是长短期记忆(LSTM)神经网络,其包括一个或多个LSTM记忆块。每个LSTM记忆块能够包括一个或多个单元(cell),每个单元包括输入门、遗忘门、和输出门,其允许单元存储该单元的先前状态,例如以用于生成当前激活或被提供到LSTM神经网络的其他组件。



技术实现要素:

本说明书大体描述了一种导航系统,其控制在环境中导航的代理,即该导航系统选择要由代理执行的行动并且然后使代理执行所选择的行动。

在所描述的主题的一个创造性方面,包括一个或多个计算机和一个或多个存储设备的系统存储指令,所述指令在被执行时使得所述一个或多个计算机实现:绘图子系统,所述绘图子系统被配置为在多个时间步中的每个时间步处根据该时间步处的环境的图像来生成所述环境的表征,其中,所述表征包括标识所述环境中具有特定特性的位置的环境地图,并且其中,生成所述表征包括对于每个时间步:在该时间步处获得所述环境的所述图像,处理所述图像以生成针对该时间步的所述环境的第一初始表征,获得针对该时间步之前的先前时间步的所述环境的最终表征,处理针对该先前时间步的所述环境的表征以生成针对该时间步的所述环境的第二初始表征,以及组合所述第一初始表征和所述第二初始表征以生成针对该时间步的所述环境的最终表征。

在一些实施方式中,处理图像以生成第一初始表征包括:使用神经网络处理图像以生成第一初始表征。

在一些实施方式中,图像是由在环境中移动的代理捕获的图像,并且其中,处理针对该先前时间步的所述环境的最终表征以生成针对该时间步的所述环境的第二初始表征包括:获得在该先前时间步和该时间步之间的所述代理的移动量度,以及将扭曲(warping)函数应用于针对该先前时间步的所述环境的最终表征和所述移动量度以生成所述第二初始表征。

在一些实施方式中,所述扭曲函数是使用双线性采样执行插值的函数。

在一些实施方式中,所述图像是由在环境中移动的所述代理捕获的,所述图像是来自所述代理的第一人称自我中心视角,以及所述第一初始表征、所述第二初始表征、针对该先前时间步的最终表征以及针对该时间步的最终表征是来自俯视视角。

在一些实施方式中,组合所述第一初始表征和所述第二初始表征以生成针对该时间步的最终表征包括:将更新函数应用于所述第一初始表征和所述第二初始表征以生成所述最终表征。

在一些实施方式中,每个表征包括:(i)表示所述环境中的多个位置是否具有所述特定特性的分值集合,以及(ii)对于所述分值集合的置信度量度集合,所述更新函数包括执行以下等式的运算:

ct=ct-1+c′t

其中,ft是针对该时间步的所述最终表征的分值集合,ct是对于针对该时间步的所述最终表征的分值集合的置信度量度集合,ft'是所述第一初始表征的分值集合,ct'是对于所述第一初始表征的分值集合的置信度量度集合,ft-1是所述第二初始表征的分值集合,以及ct-1是对于所述第二初始表征的分值集合的置信度量度集合。

在一些实施方式中,所述更新函数是由循环神经网络执行的,并且其中,所述循环神经网络被配置为:对于所述多个时间步中的每个时间步,处理针对该时间步的所述第一初始表征和所述第二初始表征以生成针对该时间步的所述最终表征。

在一些实施方式中,对于所述环境中的所述多个位置中的每个位置,针对该时间步的环境地图包括:表示该位置是否具有所述特定特性的分值,并且对于所述位置中的每个位置所述表征还包括:对于该位置的分值的置信度量度。

在一些实施方式中,系统进一步包括对于所述多个时间步中的每个时间步:从所述绘图子系统获得针对该时间步的所述最终表征,以及处理所述最终表征以选择要由在该时间步处与所述环境交互的代理执行的所建议的行动。

在另一创造性方面,所述系统包括规划子系统,其被配置为:对于多个时间步的每个时间步,获得执行行动以实现针对该时间步的目标的代理的环境的最终表征,其中,所述代理的所述环境的所述最终表征包括标识所述环境中的、具有特定特性的位置的环境地图;从所述最终表征生成空间扩缩的环境地图的序列,其中,所述序列中的每个空间扩缩的环境地图是相对于所述序列中的任何后续空间扩缩的环境地图下采样的;对于所述序列中的每个空间扩缩的环境地图,从最大下采样的空间扩缩的环境地图开始,处理所述序列中的该空间扩缩的环境地图和与该空间扩缩的环境地图相关联的一个或多个输入以生成该空间扩缩的环境地图的一个或多个价值地图,其中,价值地图对于该空间扩缩的环境地图中的多个区域中的每个区域包括在该区域中的所述代理实现所述目标的价值估计,以及对于所述序列中的、除了最后的空间扩缩的环境地图之外的每个空间扩缩的环境地图,提供该空间扩缩的环境地图的一个或多个价值地图以作为与所述序列中的后续空间扩缩的环境地图相关联的输入;以及基于所述序列中的所述最后的空间扩缩的环境地图的所更新的价值地图来选择所建议的行动。

在一些实施方式中,与所述序列中的每个空间扩缩的环境地图相关联的输入包括标识所述代理的所述目标的数据。

在一些实施方式中,目标是代理试图到达的环境中的位置。

在一些实施方式中,目标是代理试图定位的环境中的对象。

在一些实施方式中,对所述最大下采样的空间扩缩的环境地图的输入包括针对该时间步的所述最终表征。

在一些实施方式中,处理与该空间扩缩的环境地图相关联的输入以生成该空间扩缩的环境地图的一个或多个价值地图包括:处理与该空间扩缩的环境地图相关联的输入以生成该空间扩缩的环境地图的一个或多个初始价值地图;以及在该空间扩缩的环境地图的一个或多个初始价值地图上执行一次或多次价值迭代,以生成该空间扩缩的环境地图的一个或多个价值地图。

在一些实施方式中,基于所述序列中的所述最后的空间扩缩的环境地图的价值地图来选择所建议的行动包括:根据所述序列中的所述最后的空间扩缩的环境地图的价值地图,确定具有最高价值估计的所更新的价值地图的特定区域;以及选择使所述代理去往所述特定区域的行动作为针对该时间步的所建议的行动。

在一些实施方式中,基于所述序列中的所述最后的空间扩缩的环境地图的价值地图来选择所建议的行动包括:通过包括一个或多个修正的线性单元的神经网络来处理所述价值地图以选择所建议的行动。

能够实现本说明书中描述的主题的特定实施例,以便实现以下优点中的一个或多个。

用于在包括地图和规划子系统的环境中导航代理的系统能够被端对端(end-to-end)地训练,这能够在这样的系统被训练之后提高其效率和准确性。也就是说,因为由绘图器和规划器执行的操作完全可微分,因此能够通过反向传播来自规划器的误差来训练绘图器。例如,规划子系统能够学习如何使用由绘图子系统生成的环境地图,同时绘图子系统正在学习如何生成更好的环境地图。通过以下能够使针对代理的行动规划在计算上更有效率:对环境地图在空间上扩缩以针对更多下采样的空间扩缩的环境地图最小化价值迭代精度,同时仍然生成高度准确的行动规划。

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

附图说明

图1示出了示例导航系统。

图2示出了可微分绘图器的示例架构。

图3示出了可微分分层规划器的示例架构。

图4是用于在给定时间步处理图像的示例过程的流程图。

各附图中相似的附图标记和名称指示相似的元件。

具体实施方式

图1示出了示例导航系统100。导航系统100是在一个或多个位置中的一个或多个计算机上被实现为计算机程序的系统的示例,其中能够实现下面描述的系统、组件和技术。

在代理通过接收环境的图像并且响应于所接收的图像而选择要由代理执行的行动来在环境中移动时,导航系统100控制代理。

通常,环境是真实世界环境,且代理是与真实世界环境交互以实现目标的机械代理。例如,代理可以是与环境交互以实现特定目标的机器人,所述特定目标例如移动到环境中的特定位置或者在环境中定位特定对象。作为另一示例,代理可以是在环境中导航以实现目标——即导航到特定位置的自主或半自主车辆。

具体地,导航系统100重复地接收环境的图像,并且响应于每个图像,从可能的行动集合中选择要由代理执行的行动,并使代理执行所选择的行动。接收图像且然后响应于图像而执行行动的每次迭代将在本说明书中称为时间步。通过以这种方式重复选择行动,系统100使代理实现目标。

通常,所接收的图像是随着代理在环境中移动而由代理捕获的图像,即由代理的相机或其他传感器捕获的图像。因此,图像是环境相对于代理的第一人称图像。

例如,在给定时间步,系统100接收环境的图像102和标识代理相对于先前时间步的自运动(egomotion)104的数据。自运动104是代理在先前时间步和该时间步之间的运动的量度,即,指示代理的位置相对于先前时间步如何变化的量度。

然后,系统100使用图像102、自运动104和标识代理试图到达的目标122的数据来选择行动132,并使代理执行行动132,即,通过指令代理的控制系统提交与行动132相对应的特定控制输入来使代理执行行动132。也就是说,行动是使代理在环境中移动的对于代理的控制输入。

具体地,系统100包括可微分绘图器110和可微分分层规划器120。

从下面的描述中可以看出,绘图器110和规划器120被称为“可微分的”,因为这些子系统中的每一个在响应于给定图像而选择行动时执行的操作是完全可微分的。这允许系统100端对端地训练绘图器110和规划器120,以改进训练系统的效能。下面将参考图4更详细地描述训练绘图器110和规划器120。

在每个时间步,绘图器110接收该时间步的图像102和自运动104,并生成环境的表征112。

表征112通常包括信念(belief)数据和置信度数据。

信念数据是环境的地图,其标识环境中具有将对规划器120有用的某些特性的位置。具体地,由于绘图器110被训练的方式,所以特定特性是被学习得到的而不是预先确定的。也就是说,地图等同于环境的潜在表示,因为绘图器是通过反向传播来自规划器120的误差来训练的。因此,如下将描述的,地图被直接馈送到学习规划器120,地图不需要编码预定的环境特性,但是能够替代地用作由规划器120使用的一般空间记忆,即,作为对环境中的各种位置的一些特性进行编码的记忆。

更具体地,该地图来自环境的俯视视图(top-down view),并且对于俯视视图中的多个位置中的每一个,包括指示该位置具有特定特性的可能性的相应分值。

置信度数据是标识绘图器110对信念数据是否准确的置信程度的数据。例如,对于地图中的每个位置,置信度数据能够包括置信度分值,其表示绘图器110对该位置的可能性的置信程度。

下面将参考图2更详细地描述绘图器110以及生成表征。

规划器120接收表征112并基于表征112来选择要由代理执行的行动132以便代理实现目标122。通常,规划器120使用表征112在多个尺度上执行价值迭代以选择代理要执行的行动。将在下面参考图3更详细地描述规划器120和基于表征选择行动。

然后,系统100使代理执行所选择的行动132。通常,所选择的行动132是对于代理的控制输入,并且系统通过将控制输入直接提交给代理或者通过指令代理的控制系统相应地指令代理来使代理执行所选择的行动132。

图2示出了可微分规划器110的示例架构。

为了生成针对给定时间步的最终表征112,规划器110处理图像102和自运动104以生成针对该时间步的两个初始表征。与最终表征相似,两个初始表征均包括信念数据和置信度数据二者,但具有与最终表征可能不同的分值和置信度。然后,规划器110组合两个初始表征以生成最终表征112。

具体地,规划器使用神经网络220处理图像102以生成针对时间步的环境的第一初始表征222。如能够从图2看出的,神经网络220包括卷积编码器,其使用残差连接并在二维(2D)图像空间中产生图像102中的场景的表示。该表示经由全连接层被转换为处于自我中心(egocentric)2D俯视视图中的表示。使用反卷积(up-convolutional)层(也具有残差连接)对该俯视的视图表示进行上采样,以获得第一初始表征。

规划器110还使用自运动104处理来自先前时间步的最终表征202以生成针对该时间步的第二初始表征212。

更具体地,规划器110将可微分的扭曲函数212应用于来自先前时间步的最终表征202和自运动104以生成第二初始表征212。扭曲函数能够是以可微分的方式将来自先前时间步的最终表征202扭曲的任何函数。

例如,扭曲函数能够是使用双线性采样实现的函数。具体地,给定自运动,系统能够计算反向流场,其将第二初始表征212中的每个像素映射到它应该来自的最终表征202中的位置。能够从自运动解析地计算该反向流。然后,该函数能够使用双线性采样将该流场应用于最终表征202以生成第二初始表征212。

然后,规划器110组合第一初始表征222和第二初始表征212以生成针对该时间步的环境的最终表征112。

更具体地,规划器110应用组合函数230组合第一初始表征222和第二表征212以生成针对时间步的最终表征112。

在一些实施方式中,组合函数230是解析函数。具体地,更新函数能够表达如下:

ct=ct-1+c′t

其中ft是针对该时间步的最终表征的信念数据中的分值集合,ct是对于针对该时间步的最终表征的分值数据的置信度量度集合,ft'是对于第一初始表征的分值集合,ct'是第一初始表征的置信度量度集合,ft-1是第二初始表征的分值集合,且ct-1是对于第二初始表征的分值集合的置信度量度集合。

在一些其他实施方式中,组合函数230是由神经网络实现的,例如循环神经网络,如长短期记忆(LSTM)神经网络。

从该描述中能够看出,由规划器110在图像102、自运动104和最终表征202上执行的每个操作是可微分操作,即,神经网络操作或可微分解析函数。

一旦规划器110已经生成最终表征112,规划器110就将最终表征112提供给绘图器120以用于在该时间步处选择行动。

图3示出了可微分分层规划器120的示例架构。

通常,分层规划器120在多个空间尺度上规划。具体地,分层规划器120包括针对多个空间尺度中的每一个的相应价值子系统310A-N。虽然在该示例中仅示出了价值子系统310M和310N,但是规划器120通常将包括多于两个价值子系统。

子系统310A-N的第一价值子系统310A对应于k次空间下采样的地图,而最后价值子系统310N对应于原始分辨率,即,从绘图器110接收的地图的分辨率。

每个价值子系统在对应的空间尺度上进行l次价值迭代,以生成处于对应空间尺度的一个或多个价值地图。对于与该空间尺度相对应的空间扩缩的环境地图中的多个区域中的每个区域,价值地图包括对在该区域中的代理要实现目标的价值的估计,即,对在对应区域中的代理对于实现目标的价值的估计。

然后,规划器120对一个或多个价值地图进行中心裁剪和上采样,并使用经中心裁剪的和上采样的输出以更精细的尺度进行价值迭代,即,通过提供经中心裁剪的和上采样的输出作为下一个价值子系统的输入来以更精细的尺度进行价值迭代。规划器120多次重复该处理——即对于每个价值子系统重复一次以达到原始问题的分辨率。

一旦最后价值子系统310N已经生成了与从绘图器110接收的环境地图相同尺度的一个或多个价值地图,则规划器120使用这些价值地图来选择要由代理132执行的行动。在图3的示例中,规划器120使用具有修正的线性单元激活函数的一组全连接层来处理这些价值地图,以生成关于要由代理执行的可能行动的分值分布,然后从分值分布中选择行动132。在其他示例中,规划器120能够从最后价值地图确定更新的价值地图的特定区域,该特定区域是从代理的当前位置可到达的并且具有最高的价值估计,然后选择使代理去往特定区域的行动来作为针对该时间步的所建议的行动132。

更具体地,规划器120接收针对该时间步的最终表征112并从该最终表征生成空间扩缩的环境地图的序列,其中序列中的每个空间扩缩的环境地图相对于任何后续的空间扩缩的环境地图被下采样并且对应于价值子系统310A-N中的不同的一个。

对于给定的空间尺度,针对该尺度的价值子系统处理(i)对应尺度的空间扩缩的环境地图和(ii)与该空间扩缩的环境地图相关联的一个或多个输入,以生成该空间扩缩的环境地图的一个或多个价值地图。

与空间扩缩的环境地图相关联的输入通常包括序列中先前空间尺度的一个或多个价值地图以及标识代理的目标的数据。也就是说,除序列中的最后价值子系统之外的每个价值子系统提供由该价值子系统生成的一个或多个价值地图作为与序列中的后续空间扩缩的环境地图相关联的输入,即作为对序列中的下一价值子系统的输入。对于序列中的第一价值子系统——即最大下采样的价值子系统,价值地图能够是一个或多个预定的初始价值地图。

当目标是位置时,标识输入到给定价值子系统的目标的数据能够是与该子系统具有相同尺度的地图。因此,对于精细尺度,当代理远离目标时,目标可能在被提供作为对应子系统的输入的数据中不可见。

每个价值子系统包括融合器320和价值迭代模块330。

融合器320组合(i)对应尺度的空间扩缩的环境地图和(ii)与该空间扩缩的环境地图相关联的一个或多个输入,以生成包括与该空间扩缩的环境地图相同尺度的一个或多个价值地图的价值迭代输入。具体地,融合器320对来自先前价值子系统的一个或多个价值地图进行中心裁剪和上采样,并且深度串接目标数据、空间扩缩的环境地图、以及经裁剪的和上采样的价值地图以生成价值迭代输入。

然后,价值迭代模块330使用价值迭代神经网络在价值迭代输入上——即在一个或多个初始价值地图上执行l次价值迭代,以生成该空间扩缩的环境地图的一个或多个价值地图。价值迭代能够被认为是Dijkstra的算法的泛化,其中每个状态的价值在每次迭代时通过对其邻近状态的价值加上转变至那些邻近状态的奖励取最大值来迭代地重复计算。执行价值迭代的价值迭代神经网络是具有交替卷积和通道层面(channel-wise)最大池化操作的神经网络,从而允许规划器120对于其输入进行微分。在以下论文中更详细地描述了价值迭代和价值迭代神经网络:A.Tamar,S.Levine,and P.Abbeel.Value iteration networks(价值迭代网络).In NIPS,2016。

图4是用于在给定时间步处理图像的示例过程400的流程图。为方便起见,过程400将被描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,被适当地编程的例如图1的导航系统100的导航系统能够执行过程400。

系统获得环境的图像(步骤402),即,当代理在环境中移动时由代理的传感器捕获的图像。该系统还从先前时间步接收标识代理的自运动的数据。

系统根据图像和自运动生成环境的表征(步骤404)。表征包括信念数据和置信度数据。也就是说,表征包括具有地图中的每个位置处的分值和分值的置信度量度的环境的俯视的地图。

系统选择要由代理执行的所建议的行动(步骤406)。具体地,系统使用标识代理的目标的数据和环境的表征在多个空间尺度上执行价值迭代,以生成一个或多个最终价值地图。然后,系统使用一个或多个最终价值地图来选择要由代理执行的所建议的行动。

如果执行过程400是在规划器和绘图器的训练期间的,则系统获得最优行动,即本应由代理执行的行动(步骤408)。

系统确定所选择的行动和最优行动之间的误差的量度的梯度(步骤410)。

系统通过规划器和绘图器反向传播该梯度以确定对绘图器和规划器的参数的更新(步骤412)。因此,系统端对端地训练绘图器和规划器,即,在训练期间所建议的行动中的误差导致不仅更新规划器的参数,而且还更新绘图器的参数。具体地,在一些实施方式中,所建议的行动中的误差是用于调整绘图器的参数的唯一反馈,使得绘图器学习生成对于规划器在选择正确行动时有用的地图而无需任何额外监督。具体地,不存在外部标签指定由绘图器生成的信念数据中的特定特性应该是什么,从而允许绘图器学习对规划器有用的特性。

如果过程400是在训练之后执行的,则系统能够使代理执行所建议的行动。如果过程400是在训练期间执行的,则系统能够使在环境中移动的代理以概率p执行所建议的行动,并且以概率1-p执行最优行动。这允许代理探索环境并可能发现可以导致改善实现目标的效能的行动。在一些情况下,系统在代理的操作期间增加p以退火(anneal)选择最优行动的概率。

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

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

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

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

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

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

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

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

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,其包括例如半导体存储器设备——例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD ROM和DVD-ROM磁盘。

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

用于实现机器学习模型的数据处理装置还能够包括:例如,专用硬件加速器单元,其用于处理机器学习训练或生产——即推断——工作负载的公共和计算密集部分。

能够使用例如TensorFlow框架、Microsoft Cognitive Toolkit框架、Apache Singa框架或Apache MXNet框架的机器学习框架来实现和部署机器学习模型。

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

计算系统能够包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将例如HTML页面的数据发送到用户设备,例如,用于向与作为客户端的设备交互的用户显示数据和从与作为客户端的设备交互的用户接收用户输入。能够在服务器处从用户设备接收在设备处生成的数据,例如用户交互的结果。

虽然本说明书包含许多具体的实施方式细节,但是这些不应被解释为对任何发明或可能要求保护的范围的限制,而是被解释为对特定于特定发明的特定实施例的特征的描述。本说明书在单独实施例的语境中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的语境中描述的各个特征也可以在多个实施例中单独地或以任何合适的子组合来实现。此外,尽管如上特征可以被描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下可以从该组合中删去来自所要求保护的组合的一个或多个特征,并且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然以特定顺序在附图中描绘并且在权利要求书中叙述操作,但是这不应该被理解为要求以所示的特定顺序或按依次顺序执行这样的操作,或者执行所有示出的操作,以达到期望的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应当理解,所描述的程序组件和系统通常能够集成在单个软件产品中或封装成多个软件产品。

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

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