首页> 中国专利> 无监督深度预测神经网络

无监督深度预测神经网络

摘要

描述了一种用于生成图像的深度输出的系统。该系统接收描绘相同场景的输入图像,每个输入图像包括一个或多个潜在对象。该系统为每个输入图像生成相应的背景图像,并对背景图像进行处理以生成表征在输入图像之间的相机的运动的相机运动输出。对于每个潜在对象,系统基于输入图像和相机运动输出生成潜在对象的相应的对象运动输出。该系统使用深度预测神经网络(NN)处理输入图像的特定输入图像以生成特定输入图像的深度输出,并基于特定深度输出、相机运动输出、以及潜在对象的对象运动输出来更新深度预测NN的参数的当前值。

著录项

说明书

相关申请的交叉引用

本申请要求于2018年9月5日提交的美国临时申请序列号62/727,502的优先权。在先申请的公开内容被视为本申请的公开内容的一部分,并且通过引用并入本申请的公开内容中。

背景技术

本说明书涉及使用神经网络处理图像。

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

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

发明内容

本说明书描述一种作为计算机程序实现在一个或多个位所中的一个或多个计算机上的神经网络系统,该神经网络系统包括相机运动估计神经网络、对象运动估计神经网络和深度预测神经网络。

能够实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。本说明书中描述的主题通常涉及无监督学习技术,这些无监督学习技术允许神经网络系统比常规方法更准确地且更高效地直接从单眼视频预测深度和自我运动。虽然对于许多基于测程法的任务,即,需要使用来自运动传感器的数据来估计随着时间的位置变化的任务(例如,动态场景中的机器人导航),针对移动对象的精确的深度预测和精确的自我运动估计是至关重要的,但是在先工作主要集中于相机自我运动,从而留下对象运动未解决。相比之下,所描述的技术与相机自我运动一起在3D中显式地对个别对象的运动进行建模,从而产生更精确的深度和自我运动估计结果。

此外,采用监督学习方法的在先工作需要昂贵的深度传感器,其在大多数机器人场景中可能不容易获得并可能引入其自己的传感器噪声。相比之下,本文描述的主题解决场景深度、相机运动和目标运动的无监督学习,其中监督通过由相机—用于机器人的最便宜、限制最小且最普及的传感器拍摄的单眼视频来提供。附加监督或传感器不是必需的。这确保可容易地获得用于训练深度、对象运动和相机运动神经网络的训练数据,即,因为能够在机器人代理的正常操作的过程中容易地收集大量未标记的单眼视频。因此,本文描述的技术在大多数机器人场景中可适用。

此外,本文描述的技术显式地对如输入图像中描绘的场景中的个别移动对象的3D运动以及相机自我运动进行建模。通过将输入图像的局部结构引入到学习过程中,这些技术使得神经网络系统能够通过利用对多个帧进行在线细化(也称为“在线融合”)来学习而适应新环境。在在线融合模式期间,神经网络系统能够一起执行训练和推理。也就是说,神经网络系统能够运行一个或多个优化步骤以更新神经网络的参数的当前值,如同它在计算期望输出之前或之后处于训练模式下一样。在线融合允许这些神经网络了解未知环境的飞行深度和自我运动。例如,通过将在城市场景中为机器人导航收集的数据上训练的模型转移到室内导航设定,这使得能够跨环境转移学习。

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

附图说明

图1示出示例神经网络系统的架构。

图2是用于构造损失函数以联合训练相机运动估计神经网络、对象运动估计神经网络和深度预测神经网络的示例过程的流程图。

图3是用于训练相机运动估计神经网络、对象运动估计神经网络和深度预测神经网络的示例过程的流程图。

在各种附图中,相同的附图标记和名称指示相同的元件。

具体实施方式

本说明书描述了被实现为在一个或多个位所的一个或多个计算机上的计算机程序的一种神经网络系统,其包括相机运动估计神经网络、对象运动估计神经网络和深度预测神经网络。

图1示出神经网络系统100的示例架构。神经网络系统100是作为计算机程序实现在一个或多个位所中的一个或多个计算机上的系统的示例,其中能够实现下述系统、组件和技术。通常,神经网络系统100被配置成处理输入图像序列以针对输入图像生成深度和运动输出。

如图1所示,神经网络系统100包括相机运动估计神经网络104(为了简单也称为“相机运动NN 104”)、对象运动估计神经网络106(或“对象运动NN 106”)和深度预测神经网络108(或“深度NN 108”)。相机运动NN 104、对象运动NN 106和深度NN 108中的每一个均可以包括一个或多个卷积神经网络层。在一些实现方式中,相机运动NN 104、对象运动NN 106和深度NN 108是全卷积神经网络。

在Zhou,T.;Brown,M.;Snavely,N.;和Lowe,D.2017.“Unsupervised learning ofdepth and ego-motion from video.”Conference on Computer Vision and PatternRecognition(CVPR)中描述了相机运动NN 104的示例架构。

在Zhou,T.;Brown,M.;Snavely,N.;和Lowe,D.2017,"Unsupervised learning ofdepth and ego-motion from video,"CVPR中并在Godard,C.;Aodha,O.M.;和Brostow,G.J.2017,“Unsupervised monocular depth estimation with left-rightconsistency,”CVPR中描述了深度NN 108的示例架构。

在一些实现方式中,对象运动NN 106的架构与相机运动NN 104相同但是具有不同的参数,因为对象运动NN 106被配置成学习对象的运动。

对象运动NN 106的示例是这样的卷积神经网络,该卷积神经网络具有7个卷积神经网络层,其后面是1x1卷积,其后面是被应用于1x1卷积的输出的均值。例如,1x1卷积输出6个输出并且均值被应用于6个输出以获得6维矢量。替换地,对象运动NN 106能够具有更多或更少的神经网络层,能够使用全连接层并且能够具有诸如较小尺寸的其他变化。

系统100被配置成接收图像序列102并使用神经网络104、106和108中的每一个来处理图像序列102,以生成相应的深度或运动输出。

输入图像序列102可以包括由机器人代理的相机捕获的视频帧。作为另一示例,输入图像序列102可以包括由移动设备的相机(例如,当手持商用电话的用户正在骑自行车时由该电话的相机)捕获的单眼视频的帧。输入图像中的每一个均包括一个或多个潜在对象(例如,汽车、卡车、摩托车、自行车、行人和动物)。

在一些实现方式中,图像序列102可以包括视频的连续帧。然而,序列102不一定必须包括来自视频的所有帧。例如,在一些实现方式中,序列102可以包括视频的每隔一帧。

深度NN 108被配置成从序列102接收图像并处理该图像以根据深度NN 108的参数的当前值来生成该图像的深度输出。在一些实现方式中,深度NN 108被配置成处理序列102中的图像中的每一个以生成每个图像的相应的深度输出。在图1的示例中,系统100接收三个图像(I

由深度NN 108针对给定图像生成的深度输出是深度图,该深度图包括针对给定图像中的多个像素中的每个像素例如针对所有像素或这些像素的某个预先确定的适当子集的预测深度值。像素的深度值是(i)在其中记录给定图像的平面和(ii)在像素处描绘的场景(例如,对象的实际或虚拟位所或像素描绘的对象的一部分)之间的垂直距离的表示。在其中记录图像的平面可以为焦平面,例如,机器人代理的相机的焦平面或移动设备的相机的焦平面。

相机运动NN 104通常被配置成处理一对图像以根据相机运动NN104的参数的当前值来生成表征在两个图像之间的相机的运动的相机运动输出。因为在序列102中的输入图像中存在潜在移动对象,所以为了准确地估计在输入图像之间的相机的运动,系统100首先从输入图像中屏蔽掉对象运动。为了这样做,系统100针对输入图像中的每一个生成相应的背景图像,该相应的背景图像包括输入图像的未描绘输入图像中的潜在对象中的任一个的部分。系统100然后使用相机运动NN 104来处理背景图像以针对序列102中的每对输入图像生成相应的相机运动输出,该相应的相机运动输出表征在该对中的两个输入图像之间的相机的运动。相机运动输出是自我运动矢量,该自我运动矢量定义相机从其在拍摄输入图像对中的第一图像时的视点到其在拍摄该对中的第二图像时的视点的旋转和平移。例如,自我运动矢量包括用于三个平移分量t

为了图示系统100如何针对序列102中的输入图像中的每一个生成相应的背景图像,令

O

其中O

系统100通过取针对序列中的输入图像而生成的背景分割掩码的逐像素乘积来生成组合背景分割掩码V:

V=O

其中⊙表示逐元素乘法运算。

系统100通过取组合背景分割掩码和输入图像的逐像素乘积来针对每个输入图像生成相应的背景图像。所得的背景图像序列被表示为I

系统100将背景图像序列作为输入提供给相机运动NN 104。相机运动NN 104被配置成处理背景图像序列以生成相机运动输出如下:

E

其中ψE表示相机运动NN 104。相机运动输出包括(i)表示在第一输入图像I

在处理背景图像以生成相机运动输出之后,系统100使用对象运动NN 106来根据对象运动NN 106的参数的当前值基于输入图像序列和相机运动输出针对潜在对象中的每一个生成相应的对象运动输出。相应的对象运动输出表征潜在对象在其如出现在输入图像中的位置之间的运动。

特别地,系统100通过使用相机运动输出来在输入图像序列上应用扭曲(warp)操作

其中

对于潜在对象中的每一个,第i个对象的对象运动输出M

其中ψ

虽然

为了针对图像序列高效地生成深度和运动输出,神经网络系统100包括训练引擎112,该训练引擎是被编程为使用无监督学习技术来联合地训练相机运动NN 104、深度NN108和对象运动NN 106的基于软件的系统、子系统或过程。通常,训练引擎118将被实现为安装在一个或多个位所的一个或多个计算机上的一个或多个软件模块或组件。在一些情况下,一个或多个计算机将专用于特定引擎;在其他情况下,能够在相同的一个或多个计算机上安装并运行多个引擎。

为了联合地训练相机运动NN 104、深度NN 108和对象运动NN 106,训练引擎112基于扭曲图像序列、对象分割掩码序列、组合背景分割掩码、对象运动输出、相机运动输出以及由如上所述的系统100及神经网络104、106和108所生成的深度输出来确定损失函数的梯度的估计。训练引擎112反向传播损失函数的梯度的估计以联合地调整相机运动NN 104、深度NN 108和对象运动NN 106的参数的当前值。

在下面参考图2详细地描述用于构造用于联合地训练相机运动NN 104、深度NN108和对象运动NN 106的损失函数的示例过程。

在已更新了神经网络104、106和108的参数的值之后,系统100能够使用神经网络104、106和108中的一个或多个来处理一个或多个新输入图像以生成期望输出。例如,系统100能够使用深度NN 108来处理新输入图像以根据深度输出110的参数的更新值来生成新输入图像的深度输出110。

图2是用于构造用于联合地训练相机运动估计神经网络、对象运动估计神经网络和深度预测神经网络的损失函数的示例过程的流程图。为了方便,过程200将被描述为由位于一个或多个位所的一个或多个计算机的系统执行。例如,依照本说明书适当地编程的神经网络系统,例如图1的神经网络系统100,能够执行过程200。

系统通过执行以下操作来生成第一全扭曲图像(步骤202)。

对于一个或多个潜在对象中的每个潜在对象,系统对扭曲图像序列中的第一扭曲图像应用逆扭曲操作,其中该操作由深度输出D

系统针对对象i计算

系统通过组合扭曲图像序列中的第一扭曲图像和组合背景分割掩码来生成第一临时扭曲背景图像。第一临时扭曲背景图像被表示为

系统通过如下组合第一临时扭曲背景图像和第一临时扭曲目标图像来生成第一全扭曲图像,被表示为

类似地,系统通过执行以下操作来生成第二全扭曲图像(步骤204)。

对于一个或多个潜在对象中的每个潜在对象i,系统对扭曲图像序列中的第三扭曲图像应用逆扭曲操作,其中该操作由深度输出D

系统针对对象i计算

系统通过组合扭曲图像序列中的第三扭曲图像和组合背景分割掩码来生成第二临时扭曲背景图像。第二临时扭曲背景图像被表示为

系统通过如下组合第二临时扭曲背景图像和第二临时扭曲对象图像来生成第二全扭曲图像,被表示为

在生成第一全扭曲图像和第二全扭曲图像之后,系统构造被用于训练的损失函数的分量如下。

系统构造第一全扭曲图像及第二全扭曲图像和第二输入图像之间的重构损失(步骤206)。该重构损失被计算为从第一输入图像或第三输入图像扭曲成第二图像(即,三个图像序列中的中间图像)之间的最小重构损失:

以避免由于明显的遮挡/去除遮挡效应而导致的惩罚。

系统构造表示第一全扭曲图像及第二全扭曲图像和第二图像之间的不相似度的结构化相似度损失(步骤208)。系统能够构造结构化相似度损失如下:

其中SSIM(x,y)是表示从图像x中提取的图像补片与从图像y中提取的图像补片之间的相似度的索引。在Wang,Z.;Bovik,A.C.;Sheikh,H.R.;和Simoncelli,E.P.2004.“Image quality assessment:from error visibility to structural similarity.”Transactions on Image Processing中详细地描述了SSIM(x,y)索引的示例形式。

系统构造由深度输出和第二输入图像定义的深度平滑损失(步骤210)。深度平滑损失是对深度预测的图像感知平滑损失。它在允许深度在图像边缘附近变化的同时在均匀颜色区域中强制平滑度:

其中I

系统构造损失函数(步骤214)。损失函数是(i)重构损失、(ii)结构化相似度损失和(iii)深度平滑损失的加权组合。例如,损失函数能够具有以下形式:

其中α

在一些实现方式中,为了改进深度预测的准确性,系统在以上损失函数中包括对象大小损失以强加对象大小约束。

通过强加对象大小约束,系统能够解决先前工作中指出的常见问题,即诸如在前面以大致相同的速度移动的汽车的对象常常得以被投影到无限深度中。这是因为在前面的对象未示出表观运动,并且如果网络将其估计为无限远的,则重投影误差几乎减小为零,这对正确情况而言是优选的。先前工作已指出这个明显的局限性,但是除了用立体图像扩增训练数据集之外尚未提供解决方案。然而,立体图像的普及程度不及单眼视频,这将限制该方法的适用性。

人们观察到,如果模型不了解对象尺度,则可能通过将对象放置得非常远并预测非常明显的运动(假定它非常大)或者将对象放置得非常近并预测很少的运动(假定它非常小)来说明同一对象运动。通过强加对象大小约束,系统允许深度预测神经网络学习对象的尺度作为训练过程的一部分,从而能够在3D中对对象进行建模。假定某些对象例如汽车的高度先验弱,能够考虑到对象分割掩码和使用

在实践中,不期望手动估计此类约束,并且由网络产生的深度预测尺度是未知的。因此,系统允许深度预测神经网络在无需附加输入的情况下同时地学习所有约束。

考虑到上文,系统在输入图像中的每个对象i(i=1,...,N)的尺度上构造对象尺寸损失项。令

对象大小损失能够有效地防止所有分段的对象退化成无限深度,并且迫使网络不仅产生合理深度,而且还产生匹配的对象运动估计。

在用损失函数的损失分量构造损失函数之后,系统生成损失函数的梯度的估计并反向传播梯度的估计,以联合地调整深度网络的深度参数的当前值和相机运动网络的运动参数的当前值(步骤218)。系统能够通过使用最小批随机优化或随机梯度优化方法来联合地调整深度参数和运动参数的当前值,以使损失函数最小化。

图3是用于训练相机运动估计神经网络、对象运动估计神经网络和深度预测神经网络的示例过程300的流程图。为了方便起见,将过程300描述为由位于一个或多个位所的一个或多个计算机的系统执行。例如,根据该说明书适当地编程的神经网络系统,例如,图1的神经网络系统100,可以执行过程300。

系统接收描绘相同场景的输入图像序列(步骤302)。相机在不同的时间步捕获输入图像。每个输入图像包括一个或多个潜在对象。

对于输入图像序列中的每个输入图像,系统生成相应的背景图像,该背景图像包括输入图像的未描绘输入图像中的任何潜在对象的部分(步骤304)。

特别地,系统为输入图像中的每个潜在对象生成该潜在对象的相应对象分割掩码。该系统通过取输入图像中的潜在对象的对象分割掩码的并集的补集来生成输入图像的背景分割掩码。该系统通过取组合的背景分割掩码和输入图像的逐像素乘积来生成输入图像的相应背景图像。组合的背景分割掩码是针对序列中的输入图像生成的背景分割掩码的逐像素乘积。

系统使用相机运动估计神经网络处理背景图像,以生成相机运动输出,该相机运动输出表征序列中得输入图像之间的相机的运动(步骤306)。相机运动估计神经网络被配置成处理背景图像以根据相机运动估计神经网络的参数的当前值来生成相机运动输出。

相机运动输出包括(i)表示在第一输入图像和第二输入图像之间的相机的运动的第一相机运动估计,以及(ii)表示在第二输入图像和第三输入图像之间的相机的运动的第二相机运动估计。更具体地,第一相机运动估计是第一变换矩阵,其将相机的位置和定向从其在拍摄第一输入图像时的视点变换为其在拍摄第二输入图像时的视点。第二相机运动估计是第二变换矩阵,其将相机的位置和定向从其在拍摄第二输入图像时的视点变换为其在拍摄第三输入图像时的视点。

对于一个或多个潜在对象中的每一个,系统使用对象运动估计神经网络基于输入图像序列和相机运动输出来生成潜在对象的相应对象运动输出(步骤308)。相应对象运动输出表征潜在对象在其如在输入图像中出现的位置之间的运动。

特别地,潜在对象的相应对象运动输出包括:(i)第一对象运动估计,该第一对象运动估计是第三变换矩阵,其表示在其如在在第一输入图像中出现的第一位置与其如在第二输入图像中出现的第二位置之间的潜在对象的运动;以及(ii)第二对象运动估计,其是第四变换矩阵,其表示在其如在第二输入图像中出现的第二位置和其如在第三输入图像中出现的第三位置之间的潜在对象的运动。更具体地,第三和第四变换矩阵中的每一个通过描述相机的运动来表示潜在对象的运动,使得当被施加时以及当潜在对象被认为是静态的时,潜在对象出现已经适当地移动。例如,如果汽车正从左向右横过交叉口,则变换矩阵将使相机从右到左移动,使得当仅看着汽车时,汽车似乎事实上已移到右边。

系统使用深度预测神经网络并根据深度预测神经网络的参数的当前值来处理输入图像序列中的特定输入图像,以生成用于特定输入图像的深度输出(步骤310)。

由深度预测神经网络针对给定图像生成的深度输出是深度图,其包括给定图像中的多个像素的每个像素的预测深度值。像素的深度值是(i)记录给定图像的平面与(ii)像素处描绘的场景(例如,像素描绘的对象或对象的一部分的实际或虚拟位所)之间的垂直距离的表示。记录图像的平面可以是焦平面,例如,机器人代理的相机的焦平面或移动设备的相机的焦平面。

系统基于(i)特定输入图像的特定深度输出、(ii)相机运动输出和(iii)一个或多个潜在对象的对象运动输出来更新深度预测神经网络参数的当前值(步骤312)。

特别地,该系统基于输入图像序列、对象运动输出、相机运动输出和深度输出来确定损失函数的梯度的估计。该系统可以使用上面参考图2详细描述的方法来构造损失函数。系统反向传播损失函数的梯度的估计,以联合调整相机运动估计神经网络、对象运动估计神经网络和深度预测神经网络的参数的当前值。

本说明书结合系统和计算机程序组件使用术语“被配置”。对于被配置成执行特定操作或动作的一个或多个计算机的系统,意味着:所述系统已在其上安装软件、固件、硬件或其组合,在操作中使得所述系统执行所述操作或动作。对于被配置成执行特定操作或动作的一个或多个计算机程序,意味着:所述一个或多个程序包括指令,所述指令在被数据处理设备实行时使得所述设备执行所述操作或动作。

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

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

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

本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程计算机来执行,从而通过对输入数据进行操作并生成输出来执行功能。所述过程和逻辑流还可以通过专用逻辑电路(例如,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页面)到用户装置(例如,为了将数据显示给用户并从用户接收用户输入,所述用户与充当客户端的装置进行交互)。在用户装置处生成的数据(例如,用户交互的结果)可以在服务器处从所述装置接收。

虽然本说明书含有许多特定实施细节,当不应将这些细节理解为对任何发明的范围或对要求保护的内容的范围的限制,而应理解为对可以特定于特定发明的特定实施例的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征还可以分别实现于多个实施例中或任何合适的子组合中。此外,尽管上文可以将特征描述为在某些组合中起作用且甚至最初也是如此要求保护的,但在一些情况下,来自为所要求保护的组合的一个或多个特征可以从所述组合删除,且所要求保护的组合可以针对子组合或子组合的变型。

类似地,虽然在附图中描绘了操作并且在权利要求中以特定的次序叙述了操作,但此不应理解为要求按所示出的特定次序或按顺序次序来执行此类操作,或执行所有图示的操作,从而实现所需要的结果。在某些情况下,多任务处理和并行处理可能是有利的。此外,上述实施例中各种系统模块和组件的分离不应理解为在所有实施例中要求此类分离,并且应理解,一般可以将所描述程序组件和系统一起集成在单个软件产品中或封装在多个软件产品中。

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号