用于密集图像预测任务的神经架构搜索的制作方法

文档序号:22626704发布日期:2020-10-23 19:35阅读:123来源:国知局
用于密集图像预测任务的神经架构搜索的制作方法



背景技术:

本说明书涉及确定执行图像处理任务的神经网络的架构。

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



技术实现要素:

本说明书描述一种被实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统,该系统确定神经网络的架构,该神经网络被配置为执行密集图像预测任务。

通常,密集图像预测任务是需要对输入图像中的大量像素中的每个像素进行相应预测的任务。许多密集图像预测任务需要指配标签或以其他方式对图像的每个像素进行预测。因此,密集图像预测任务通常需要神经网络以对高分辨率图像进行操作。

为了确定架构,系统获取用于密集图像预测任务的训练数据。然后,系统使用训练数据确定神经网络的架构,该神经网络被配置为执行密集图像预测任务,即,接收输入并生成符合密集预测任务要求的输出。

具体地,该系统使用训练数据搜索候选架构的空间以识别一个或多个性能最佳的架构。候选架构的空间中的每个候选架构包括(i)相同的第一神经网络主干,该第一神经网络主干被配置为接收输入图像并处理该输入图像以生成多个特征图,以及(ii)不同的密集预测单元,该密集预测单元被配置为处理多个特征图并生成用于密集图像预测任务的输出。因此,每个候选架构包括与每个其他候选架构相同的神经网络主干,但是具有与每个其他候选架构不同的密集预测单元。

然后,系统基于性能最佳的候选架构来确定神经网络的架构。

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

本说明书中描述的架构搜索技术可以以计算高效的方式确定用于密集预测任务的高性能架构。具体地,由于密集预测任务需要生成针对输入图像中大量像素的预测,因此此类任务需要网络以对高分辨率图像进行操作。这使得现有的架构搜索技术(例如,适合于图像分类或其他非密集图像处理任务的技术)不适合用于这些任务。这是因为这些任务中的许多依赖于不代表最终的密集图像预测任务的低分辨率代理任务,或者需要搜索的搜索空间太大,以至于对高分辨率图像进行操作时,这种搜索在计算上是不可行的。

另一方面,所描述的技术有效地限制了搜索空间以识别用于密集预测单元的最佳架构,从而得到在多个密集图像预测任务中具有超过先前技术水平的性能的架构。

此外,通过使用所描述的技术,所得到的架构可以比先前技术水平的模型具有更高的计算效率,同时又可以超越其性能。作为所描述技术可以实现的各种结果的示例,所得的架构可以在数个密集预测任务上实现最先进技术水平的性能,包括在cityscapes数据集(街道场景解析)上实现82.7%的miou精度,在pascal-人物部分数据集(人物部分分割)上实现71.3%的miou精度,以及在pascalvoc2012数据集(语义图像分割)上实现87.9%的miou精度。同时,所得的架构在计算上更加高效,针对这些数据集,需要先前技术水平的系统的大约一半的参数和一半的计算成本。

另外,通过在搜索过程中使用比将被包括在最终架构中的更小的主干,可以减少搜索过程所消耗的资源量。另外,通过例如在对象分割任务上对主干进行预训练,然后在搜索期间将主干保持固定,可以减少搜索过程所消耗的资源量。另外,通过预计算然后缓存由预训练的主干生成的特征图,可以减少搜索所消耗的资源量。作为特定示例,当主干更小且由预先训练的主干生成的特征图已被预先计算并缓存时,与依靠不预先缓存输入且不减小主干大小的训练候选神经网络的技术相比,该系统可以以更少的时延和更高的数据效率(即,使用更少的存储器)执行搜索。

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

附图说明

图1示出示例神经架构搜索系统。

图2示出示例候选架构。

图3是用于确定最终架构的示例过程的流程图。

图4是用于搜索候选架构的空间的示例过程的流程图。

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

具体实施方式

本说明书描述了一种被实现为在一个或多个位置的一个或多个计算机上的计算机程序的系统,该系统确定神经网络的架构,该神经网络被配置为执行密集图像预测任务。

通常,密集图像预测任务是需要对输入图像中的大量像素中的每个像素进行相应预测的任务。许多密集图像预测任务需要指配标签或以其他方式对图像的每个像素进行预测。因此,密集图像预测任务通常需要神经网络对高分辨率图像进行操作。

密集图像预测任务的一个示例是图像分割任务。在分割任务中,输入是图像,而输出是图像中每个像素的相应标签,其用于对图像中该像素处描述的内容进行分类。

图像分割任务的一个示例是人物部分分割任务,其中输入是一个或多个人物的图像,而输出是图像中每个像素的相应标签,其使得标签分类哪些像素对应于哪些人物部分(例如,头、躯干、腿等)以及哪些对应于背景(即,未描绘任何人)。

图像分割任务的另一个示例是语义图像分割任务。在语义图像分割任务中,输入是图像,而输出是图像中每个像素的相应标签,其例如从多个前景对象类别和一个或多个背景对象类别的集合中识别该像素属于哪个对象类别。

图像分割任务的另一个示例是场景解析任务。在场景解析任务中,输入是图像,而输出是图像中每个像素的相应标签,其识别该像素属于图像中所描绘场景的哪个部分。

密集图像预测任务的另一个示例是对象检测任务。在对象检测任务中,输入是图像,输出是数据,该数据指定图像的哪些像素是对象的图像的部分。例如,输出可以是图像中每个像素的标签,其识别该像素是否是对象的图像的一部分。作为另一个示例,输出可以是图像中大量边界框中的每一个的分数,该分数指示边界框是否是对象的图像的一部分。

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

神经架构搜索系统100是这样的系统,该系统获得用于训练神经网络以执行密集图像预测任务的训练数据102和用于评估神经网络在密集图像预测任务上的性能的验证集104,并使用训练数据102和验证集104以确定神经网络的架构,该神经网络配置为执行密集图像预测任务,即,接收输入并生成符合密集预测任务要求的输出。该架构定义神经网络的层数、每个层执行的操作以及神经网络中各层之间的连接,即,哪些层从神经网络中的其他层接收输入。

通常,训练数据102和验证集104都包括一组神经网络输入,并且对于每个网络输入,包括应由神经网络生成以执行密集图像预测任务的相应目标输出。例如,较大的训练数据集可能已被随机分割以生成训练数据102和验证集104。在密集图像预测任务设置中,每个神经网络输入是图像,而针对神经网络输入的神经网络输出识别应被指配给神经网络输入中的一些或所有像素的标签。

系统100可以以各种方式中的任何一种来接收训练数据102和验证集104。例如,系统100可以例如使用可用于系统100的应用编程接口(api),通过数据通信网络从系统的远程用户作为上传接收训练数据,并且将上传的数据随机地划分为训练数据102和验证集104。作为另一个示例,系统100可以从用户接收输入,该输入指定系统100已经维护的哪些数据应当用于训练神经网络,并且然后将指定的数据划分为训练数据102和验证集104。

通常,系统100通过搜索候选架构的空间以识别一个或多个性能最佳的架构来确定神经网络的架构。

候选架构的空间中的每个候选架构包括(i)相同的第一神经网络主干,该主干被配置为接收输入图像并处理该输入图像以生成多个特征图,以及(ii)不同的密集预测单元,该单元被配置为处理多个特征图并生成用于密集图像预测任务的输出。

因此,每个候选架构包括与每个其他候选架构相同的神经网络主干,但是具有与每个其他候选架构不同的密集预测单元。

图2示出候选神经网络架构200。如上所述,架构200接收神经网络输入220,即,图2所示的三个图像之一,并生成将标签指配给神经网络输入的神经网络输出250。如图2所示,神经网络输出250被表示为在相应输入图像上的覆盖,其中指配有相同标签的像素在覆盖中的相同阴影下。

候选神经网络架构包括主干230,该主干由多个神经网络层组成,例如,卷积层可选地与其他类型的层(批量归一化、池化等)组合,并接收神经网络输入220并生成特征图,该特征图被提供作为密集预测单元(dpc)240的输入。密集预测单元240处理特征图以生成神经网络输出250。

如上所指示的,搜索空间中的每个候选神经网络都具有相同的主干230,但是所有候选神经网络都具有不同的dpc240。因此,用于架构搜索的搜索空间是dpc240可能的架构的空间。

接下来是系统100可以搜索到的dpc240的可能的架构的空间的示例。

例如,dpc可以具有b个分支,其中b是大于1的固定整数。dpc的b个分支中的每个分支都通过对输入张量应用运算来将对该分支的输入张量映射到输出张量。然后,dpc可以组合(例如,级联)由所有b个分支生成的输出张量,以生成组合的张量输出,或使用由指定的b个分支中的一个(例如,处理顺序中的b个分支中的最后一个)生成的输出张量,作为组合张量输出。b可以是例如在3到10范围内的整数,包括3和10,b的值越大,允许更大的灵活性和更大的搜索空间,但是增加了搜索过程的计算成本。

在一些情况下,组合的张量输出可用作用于密集预测任务的dpc240的输出。在其他情况下,dpc通过一个或多个输出层(例如,sigmoid输出层)处理组合的张量输出,以生成最终输出。

因此,搜索空间中的不同架构各自指定(i)来自输入张量集的输入张量,该输入张量集将被提供作为输入提供给b个分支中的每一个,以及(ii)来自运算集的运算,该运算集将由b个分支中的每一个执行。

可以从集合中选择的给定分支的输入张量,该集合包括(i)由主干生成的特征图和(ii)由b个分支的处理顺序中的在该分支之前的任何分支生成的输出张量。因此,对于处理顺序中的第一个分支,集合仅包括由主干生成的特征图,而对于处理顺序中的b个分支中的最后一个分支,集合包括(i)由主干生成的特征图和(ii)由b-1个其他分支中的任何分支生成的输出张量。

运算符空间,即,从中选择由b个块中的每一个所执行的运算的可能的运算的空间,可以包括以下一项或多项:(1)具有1×1内核的卷积,(2)一个或多个多孔可分离卷积,每个都具有不同的采样率,以及(3)一个或多个空间金字塔池化运算,每个都具有相应的网格大小。

当运算符空间包括多个多孔可分离卷积时,多孔可分离卷积中的每一个将具有不同的采样率。例如,采样率可以定义为r_h×r_w,其中r_h和r_w中的每一个均选自集合{1、2、6、9,...,21}。

当运算符空间包括多个空间金字塔池运算时,每个空间金字塔池化运算将具有不同的网格大小。例如,网格大小可以被定义为g_h×g_w,其中g_h和g_w中的每一个均选自集合{1,2,4,8}。

搜索空间的其他示例可以包括不同的运算符空间以及该空间中运算符的采样率和网格大小的不同可能值。

返回图1的描述,系统100包括候选选择引擎130、训练引擎140和质量评估引擎150。

为了搜索候选架构的空间,系统重复执行一组架构搜索操作。

在操作的每次迭代中,候选选择引擎130使用针对已经被评估的候选架构的质量度量从可能的候选架构的空间中选择一个或多个候选架构。

然后,训练引擎140在至少一些训练数据102上训练选择的候选架构,并且质量评估引擎150使用验证集104评估训练的候选架构。

下面参考图3和图4更详细地描述选择候选架构、训练候选架构以及评估架构的质量。

在已经重复执行架构搜索操作之后,系统100可以将在搜索期间评估的具有最佳质量度量的阈值、固定数量的候选架构识别为性能最佳的候选架构。

一旦系统100识别出性能最佳的候选架构,系统100就基于性能最佳的候选架构确定神经网络的最终架构。

例如,系统100可以识别阈值数量的性能最佳的候选架构,从性能最佳候选中的每一个生成最终架构,并且然后训练最终架构以在密集预测任务上收敛。然后,系统可以选择性能最佳(例如,基于在验证集104上的准确性确定的)的已训练架构作为神经网络的架构。

在一些实施方式中,候选架构和相应的最终架构是相同的。

然而,在其他实施方式中,系统100用具有更多参数并且允许最终神经网络在密集预测任务上表现更好的不同的、更大的神经网络主干替换神经网络主干。

换句话说,在一些情况下,系统使用比最终架构采用的主干更小的主干用于架构搜索。

例如,系统可以在最终架构中采用xception架构用于主干,同时采用mobilenet-v2架构用于候选架构(即,在搜索期间)。mobilenet-v2架构大约需要xception架构的二十分之一的计算成本,并将主干特征图中的通道数量从2048维度减少到320维度。xception架构在cvpr2017中的f.chollet的xception:deeplearningwithdepthwiseseparableconvolutions(xception:具有深度可分离卷积的深度学习)中有更详细的描述,而mobilenet-v2架构在cvp2018中的m.sandler,a.howard,m.zhu,a.zhmoginov和l.-c.chen的mobilenetv2:invertedresidualsandlinearbottlenecks(mobilenetv2:倒置残差和线性瓶颈)中有更详细的描述。

使用较小的主干可以允许系统使架构搜索计算上更高效,同时仍然为具有较大主干的最终架构在密集图像预测任务上的表现情况提供质量信号。

下面参考图4描述系统可以用来改善搜索的计算效率的附加技术。

然后,神经网络搜索系统100可以输出指定神经网络的最终架构的架构数据150,即,指定作为神经网络的一部分的层、层之间的连接以及由层执行的操作的数据。例如,神经网络搜索系统100可以将架构数据150输出给提交训练数据的用户。

在一些实施方式中,代替输出架构数据150或除了输出架构数据150之外,系统100使用具有最终架构的已训练神经网络来处理用户接收到的请求,例如,通过系统提供的api。即,系统100可以接收待处理的输入,使用已训练的神经网络来处理输入,并响应于接收到的输入而提供由已训练的神经网络生成的输出或从生成的输出导出的数据。

图3是用于确定密集图像预测任务的最终架构的示例过程300的流程图。为了方便起见,将过程300描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,神经架构搜索系统,例如,经过适当编程的图1的神经架构搜索系统100,可以执行过程300。

系统接收用于密集图像预测任务的训练数据(步骤302)。

系统使用训练数据搜索候选架构的空间以识别一个或多个最佳性能的架构(步骤304)。下面参考4更详细地描述搜索候选架构的空间。一旦搜索完成,系统就可以选择在搜索期间具有最佳质量评估的阈值数量的候选架构作为性能最佳的架构。

该系统基于一个或多个性能最佳的候选架构来确定神经网络的架构(步骤306)。例如,系统可以从每个识别出的性能最佳的候选中生成最终架构,然后训练最终架构以在密集预测任务上收敛。然后,系统可以选择性能最佳(例如,基于验证集的准确性确定的)的已训练架构作为神经网络的架构。

在一些实施方式中,候选架构和相应的最终架构是相同的。

然而,在其他实施方式中,系统用具有更多参数并且允许最终神经网络在密集预测任务上表现更好的不同的、更大的神经网络主干替换神经网络主干。

换句话说,在一些情况下,系统使用比最终架构采用的主干更小的主干用于架构搜索。

图4是用于搜索候选架构的空间的示例过程400的流程图。为了方便起见,将过程400描述为由位于一个或多个位置的一个或多个计算机的系统执行。例如,神经架构搜索系统,例如,经过适当编程的图1的神经架构搜索系统100,可以执行过程400。

该系统获得指定用于搜索候选架构的空间的预训练主干的数据(步骤402)。在一些情况下,系统会在占位符密集图像预测任务上将主干连同占位符dpc一起进行预训练,以确定主干参数的训练值,即,使得系统对于整个搜索过程只需要训练一次主干。在一些其他情况下,系统从已经预先训练了主干的另一个系统获得指定主干参数的训练值的数据。

可选地,系统使用预训练的主干处理训练数据中的训练输入中的至少一些,以生成训练输入的特征图(步骤404)。换句话说,系统使用预训练的主干(即,根据主干参数的训练值)处理训练输入中的每一个,以生成特征图,然后存储生成的特征图以在搜索过程期间使用。当系统使用较小的主干进行搜索时,由于较小的主干生成的特征图的通道比较大的主干(将在最终架构中使用)生成的特征图的通道要少很多,因此,存储特征图所需的存储空间比存储由较大主干生成的特征图所需的存储空间少得多。

然后,系统重复执行步骤406-410,直到满足搜索的终止标准为止,例如,直到已评估了阈值数量的候选架构,直到性能最高的候选架构达到阈值精度,或者流逝阈值时间量。

系统从候选架构的空间中选择一个或多个候选架构(步骤406)。该系统可以使用多种技术中的任何一种来搜索空间以选择候选架构。

例如,系统可以使用随机搜索策略。在随机搜索策略中,在过程400的每次迭代中,系统从候选架构的空间中随机地均匀地选择一个或多个架构,同时还选择与当前观察最佳的架构接近或与之相似的一个或多个架构,即,已发现在密集预测任务上表现最佳的已作为搜索的一部分进行评估的架构。该系统可以采用的随机搜索策略在sigkdd2017中的d.golovin,b.solnik,s.moitra,g.kochanski,j.karro和d.sculley的googlevizier:aserviceforblack-boxoptimization(googlevizier:黑盒优化服务)以及cvp2018中的b.zoph,v.vasudevan,j.shlens和q.v.le.的learningtransferablearchitecturesforscalableimagerecognition(学习可转移的架构以实现可扩展的图像识别)中有更详细的描述。

作为另一个示例,系统可以使用强化学习指导的搜索策略来选择候选动作。具体地,在过程400的每次迭代中,系统可以选择由递归神经网络输出的架构,该递归神经网络通过强化学习被训练以输出在任务上表现良好的候选架构。在iclr2017的b.zoph和q.v.le.的neuralarchitecturesearchwithreinforcementlearning(使用强化学习的神经架构搜索)中更详细地描述了系统可以采用的强化学习指导的搜索策略的示例。

系统在训练数据的至少一部分上训练所选择的一个或多个候选架构(步骤408)。即,对于每个选择的候选,系统训练具有该架构的神经网络,直到满足停止训练的标准。在训练期间,系统在更新神经网络中dpc的参数值的同时,保持主干参数的训练值固定。

具体地,在执行步骤404以使用预训练的主干对训练数据进行预处理的实施方式中,系统在步骤408期间不使用主干来处理训练输入,而是从存储器访问预生成的特征图。这极大地减少了训练消耗的处理功率和时间,因为在dpc可以处理特征图之前,不需要通过主干处理训练输入来生成特征图。

该系统可以使用早期停止标准来执行该训练,即,可以以固定数量的迭代而不是为了收敛来执行训练。

系统评估已训练的候选架构中的每一个的性能(步骤410)。该系统使用评估指标,该评估指标度量在验证集上具有候选架构的已训练神经网络的性能,以评估性能。

可以使用适合于密集预测任务的任何评估指标。例如,系统可以使用验证数据集上的像素方式平均交并比(miou)作为评估指标。作为另一个示例,系统可以将验证数据集上的平均像素精度用作评估指标。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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