生成神经网络的制作方法

文档序号:16506300发布日期:2019-01-05 09:03阅读:239来源:国知局
生成神经网络的制作方法

本说明书涉及神经网络架构。



背景技术:

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

一些神经网络是递归神经网络。递归神经网络是接收输入序列并且从输入序列生成输出序列的神经网络。具体地,递归神经网络可以使用来自上一时间步的网络的内部状态中的一些或者全部来计算当前时间步处的输出。



技术实现要素:

一般而言,本说明书中描述的主题的一个创新方面可以体现为由一个或者多个计算机实现的神经网络系统,该神经网络系统包括:递归神经网络,被配置为:针对预定数目的时间步中的每个时间步,接收该时间步的一组潜变量并且对一组潜变量进行处理以更新递归神经网络的隐藏状态;以及生成子系统,被配置为:针对预定数目的时间步中的每个时间步:生成时间步的一组潜变量并且将一组潜变量作为输入提供至递归神经网络;使用递归神经网络的所更新的隐藏状态来更新隐藏画布(canvas);并且针对预定数目的时间步中的最后一个时间步:使用最后一个时间步的所更新的隐藏画布来生成输出数据项,即,输出图像。

本说明书中描述的主题的另一创新方面可以体现为方法,该方法包括前一方面的生成子系统被配置来进行的操作。本说明书中描述的主题的另一创新方面可以体现为一个或者多个编码有指令的计算机存储介质,该指令在被一个或者多个计算机执行时使得该一个或者多个计算机实现上述方面的系统。

该方面的其他实施例包括对应的计算机系统、装置、和被记录在一个或者多个计算机存储设备上的计算机程序,该计算机程序各自被配置为进行方法的动作。一个或者多个计算机的系统可以被配置为借助于安装在系统上的在操作时可以使得系统进行动作的软件、固件、硬件或者其任何组合来进行特定操作或者动作。一个或多个计算机程序可以被配置为借助于包括指令来进行特定操作或者动作,该指令在被数据处理装置执行时使得该装置进行动作。

实施方式可以包括以下特征中的一个或者多个特征。在一个实施方式中,递归神经网络是长短期记忆(lstm)神经网络。在一个实施方式中,使用递归神经网络的更新的隐藏状态来更新隐藏画布包括:通过使用写入机制处理隐藏状态来生成时间步的写入(write);以及将画布函数应用于写入来将写入与隐藏画布组合,以生成时间步的更新的隐藏画布。在一个实施方式中,写入机制是基于注意力的写入机制。在一个实施方式中,基于注意力的写入机制使用空间变换函数。在一个实施方式中,画布函数是加性画布函数。在一个实施方式中,画布函数是门控递归画布函数。在一个实施方式中,使用最后一个时间步的更新的隐藏画布来生成输出图像包括:使用观测函数将最后一个时间步的更新的隐藏画布映射到似然模型的充分统计量;以及通过从似然模型取样来生成输出图像。在一个实施方式中,生成时间步的一组潜变量包括:从先验分布取样潜变量。在一个实施方式中,输出图像是输入图像的重构,并且神经网络系统进一步包括:推理子系统,其中,推理子系统被配置为:针对预定数目的时间步中的每个时间步:通过将读取函数应用于输入图像和递归神经网络的隐藏状态来生成输入图像的精灵表示;使用精灵表示和递归神经网络的隐藏状态来确定潜变量的分布的参数;以及根据确定的参数从分布取样时间步的一组潜变量。

本说明书中描述的主题的另一创新方面可以体现为神经网络系统的生成子系统,该生成子系统由一个或者多个计算机实现并且被配置为:针对预定数目的时间步中的每个时间步:从神经网络系统的递归神经网络接收递归神经网络的更新的隐藏状态;生成时间步的一组潜变量并且将一组潜变量作为输入提供至递归神经网络;以及使用递归神经网络的更新的隐藏状态来更新隐藏画布;以及针对预定数目的时间步中的最后一个时间步,使用最后一个时间步的更新的隐藏画布来生成输出图像。本说明书中描述的主题的另一创新方面可以体现为神经网络系统的生成子系统,该生成子系统由一个或者多个计算机实现并且被配置为进行本文所描述的方法。

本说明书中描述的主题可以实现在特定实施例中,从而实现以下优点中的一个或者多个。需要生成输入数据的重构的计算任务可以使用递归神经网络以顺序的方式进行。可以对神经网络的注意力和画布写入机制进行改进以允许增强的生成和推理结果,并且这可以减少生成输入数据项所需的时间和/或资源。本说明书中描述的神经网络系统可以准确地进行一次性泛化。

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

附图说明

图1示出了示例神经网络系统。

图2是生成输入数据项的重构的示例过程的流程图。

图3是生成新数据项的示例过程的流程图。

图4是更新时间步处的隐藏画布的示例过程的流程图。

图5是使用最后一个时间步的更新的隐藏画布来生成输出图像的示例过程的流程图。

图6是在输入图像的重构期间取样每个时间步的一组潜变量的示例过程的流程图。

图7是使用一次性泛化来生成数据项的示例过程的流程图。

图8是训练神经网络系统以进行数据项的一次性泛化的示例过程的流程图。

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

具体实施方式

图1示出了示例神经网络系统100。该神经网络系统100是实现为在一个或者多个位置的一个或者多个计算机上的计算机程序的系统的示例,其中,可以实现下面描述的系统、组件和技术。

神经网络系统100获得输入数据项并且对输入数据项进行处理以生成每个输入数据项的相应系统输出,即,输入数据项108的系统输出110。

神经网络系统100的针对给定输入数据项的系统输出可以是输入数据项108的重构版本。例如,输入数据项——例如输入数据项108——可以是图像或者视频帧,并且生成的系统输出可以是重构的图像或者视频。

神经网络系统100包括生成子系统103和递归神经网络101。神经网络子系统还可以可选地包括推理子系统102。

一般而言,神经网络系统100通过针对多个时间步处理从输入数据项获得的信息来迭代地生成输入数据项的系统输出。神经网络系统100进行处理的时间步数可以被认为是待预先指定的自由参数。

具体地,生成子系统103被配置为:针对多个时间步中的每个时间步,接收递归神经网络101的更新的隐藏状态121并且使用更新的隐藏状态121来更新隐藏画布。输入数据项的隐藏画布是表示输入数据项的特性的一组隐藏变量,并且可以用于重构输入数据项。具体地,当系统输出是图像时,隐藏画布可以被表示为网格,该网格在多个空间位置中的每个空间位置处都具有一个或者多个值。在一些实施方式中,隐藏画布具有与系统输出图像相同的空间维度。在一些其它实施方式中,隐藏画布具有与系统输出图像不同的空间维度。

在一些实施方式中,通过更新每个时间步处的隐藏画布,生成子系统103使用由递归神经网络101进行的处理的输出来顺序地生成系统输出110。

下面参照图4更详细地描述更新给定时间步处的隐藏画布。

在一些实施方式中,通过顺序地生成系统输出110,神经网络系统100可以进行一次性泛化——即分析输入数据项一次的任务,并且基于输入数据项来生成捕获输入数据项的一些特性的新数据项。神经网络系统100通过以下操作来完成这个任务:在多个时间步中生成其系统输出,在每个时间步使用由前面的时间步提供的反馈。

下面参照图7更详细地描述使用神经网络系统100来进行一次性泛化。下面参照图8更详细地描述对神经网络系统100进行训练以进行一次性泛化。

生成子系统103还被配置为生成每个时间步的一组潜变量111并且将该一组潜变量111作为输入提供至递归神经网络101。

当神经网络系统100生成输入数据项108的重构作为系统输出时,生成子系统103可以基于输入数据项108的精灵表示(spriterepresentation)来生成一时间步的一组潜变量111。

在那些实施方式中的一些实施方式中,生成子系统103可以从推理子系统102获得一组潜变量,该推理子系统102在取样神经网络系统100在每个时间步处所使用的潜变量中使用输入图像的精灵表示。

在一些实施方式中,不同时间步的相应组的潜变量111彼此具有非线性依赖关系,诸如,层次关系,在该层次关系中,一组潜变量111以非线性方式依赖于另一组潜变量111。

在那些实施方式中的一些实施方式中,递归神经网络101可以包括多个堆叠递归神经网络层,其中,由特定递归神经网络层的节点产生的更新隐藏状态值被视为堆叠在该特定递归神经网络层之上的递归神经网络层的一组潜变量。

在多个时间步中的最后一个时间步之后,生成子系统103使用最后一个时间步的更新的隐藏画布来生成输出图像。输出图像可以是输入数据项的重构或者新数据项。下面参照图2和图4更详细地描述使用最终隐藏画布来生成输入数据项的重构。下面参照图3更详细地描述使用最终隐藏画布来生成新数据项。

递归神经网络101是这样的递归神经网络:其被配置为在时间步中的每个时间步处接收该时间步的输入——即,从生成子系统103接收到的、该时间步的一组潜变量111,并且对该输入进行处理以更新神经网络101的隐藏状态。

在一些实施方式中,每个时间步的向递归神经网络101的输入还包括与输入数据项相关联的外部场境信息(contextualinformation)贡献的度量。在那些实施方式中的一些实施方式中,这样的度量由神经网络(未示出)生成,该神经网络针对每个时间步接收上一时间步的递归神经网络101的更新的隐藏状态和输入数据项的外部场境信息作为输入,并且对那些输入进行处理以生成外部场境信息贡献的度量。

外部场境信息可以包括不是被输入数据项108的内部内容(例如,像素内容)捕获的关于输入数据项108的任何信息。例如,外部场境信息可以包括输入数据项108的创建日期。

递归神经网络将每个时间步处的更新的隐藏状态121都提供至生成子系统103。生成子系统103使用每个时间步的递归神经网络101的更新的隐藏状态来更新该时间步的隐藏画布。

在一些实施方式中,递归神经网络101是长短期记忆(lstm)神经网络,该lstm神经网络包括一个或者多个lstm神经网络层,其中每个lstm层都包括一个或者多个lstm记忆块。每个lstm记忆块都可以包括一个或者多个cell,该一个或者多个cell均包括输入门、忘记门和输出门,其允许该cell存储由该cell生成的先前激活,例如,作为用于生成当前激活或者被提供至lstm神经网络的其它组件的隐藏状态。在alexgraves的“generatingsequenceswithrecurrentneuralnetworks(利用递归神经网络生成序列)”中更详细地描述示例lstm神经网络,该文献可在http://arxiv.org/abs/1308.0850v5处获取。

在系统输出110是输入图像的重构的一些实施方式中,推理子系统102被配置为取样每个时间步的一组潜变量111。下面参照图6更详细地描述在输入图像的重构期间取样每个时间步的一组潜变量111。

在一些实施方式中,潜变量的分布的参数包括该分布的均值和方差。

一旦对神经网络系统100进行训练以生成输入数据项的重构,神经网络系统100便可以用于通过从在训练期间获得的多个输入数据项的潜变量的分布随机取样来生成新数据项。下面参照图3更详细地描述使用神经网络系统100来生成新数据项。

图2是生成输入数据项的重构的示例过程200的流程图。为了方便起见,将过程200描述为由位于一个或者多个位置的一个或者多个计算机的系统进行。例如,根据本说明书被适当地编程的神经网络系统(例如,图1的神经网络系统100)可以进行过程200。

系统获得输入数据项(210)。

在多个时间步中的每个时间步处,系统生成输入数据项的一组潜变量(220)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)的生成子系统进行。系统基于从输入数据项获得的信息来生成一组潜变量。

在一些实施方式中,系统基于输入数据项的简化表示(例如,输入图像的精灵表示)来取样一组潜变量。下面参照图6进一步描述基于输入图像的精灵表示来取样潜变量。

在每个时间步处,系统使用递归神经网络对该时间步的一组潜变量进行处理以更新递归神经网络的隐藏状态(230)。

在每个时间步处,系统使用该时间步的递归神经网络的更新的隐藏状态来更新隐藏画布(240)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)的生成子系统进行。下面参照图4更详细地描述更新每个时间步处的隐藏画布。

系统使用在多个时间步中的最终时间步之后获得的更新的隐藏画布来生成输入数据项的重构以作为输出数据项(250)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)的生成子系统进行。下面参照图5更详细地描述使用最终隐藏画布来生成数据项。

图3是生成新数据项的示例过程300的流程图。为了方便起见,将过程300描述为由位于一个或者多个位置的一个或者多个计算机的系统进行。例如,根据本说明书被适当地编程的神经网络系统(例如,图1的神经网络系统100)可以进行过程300。

系统获得多个时间步中的每个时间步的一组潜变量(310)。系统从潜变量的分布取样一组潜变量。在一些实施方式中,取样是通过使用随机取样技术来进行的。

在每个时间步处,系统使用递归神经网络对该时间步的一组潜变量进行处理以更新递归神经网络的隐藏状态(320)。

在每个时间步处,系统使用更新的隐藏状态来更新隐藏画布(330)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)的生成子系统进行。下面参照图4更详细地描述更新每个时间步处的隐藏画布。

系统使用在多个时间步中的最终时间步之后获得的更新的隐藏画布来生成新数据项(340)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)的生成子系统进行。下面参照图5更详细地描述使用最终隐藏画布来生成数据项。

图4是更新时间步处的隐藏画布的示例过程400的流程图。为了方便起见,将过程400描述为由位于一个或者多个位置的一个或者多个计算机的系统进行。例如,根据本说明书被适当地编程的神经网络系统(例如,图1的神经网络系统100)可以进行过程400。

系统获得每个时间步的递归神经网络的更新的隐藏状态,例如,图1的神经网络系统100的时间步的更新的隐藏状态121(410)。

系统通过使用写入机制处理更新的隐藏状态来生成时间步的写入(420)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)的生成子系统进行。写入是递归神经网络的更新的隐藏状态的变换。

在一些实施方式中,写入机制由写入函数表示,该写入函数是非线性变换函数。系统将写入函数应用于时间步的更新的隐藏状态以生成写入。

在一些实施方式中,写入机制是基于注意力的写入机制,诸如,使用空间变换函数的基于注意力的写入机制。使用空间变换函数的基于注意力的写入机制能够提供包括输入图像的输入数据项中的对象的形状和大小的不变性。这可以使系统能够独立地处置作为输入图像的重构的系统输出的位置、规模、旋转和内容。

在一些实施方式中,空间变换函数进行以下操作:

其中,x是需要使用隐藏画布来变换的输入图像,λ是函数的一组参数,kh和kw是1维核,表示两个核的张量外积,并且*表示卷积。输入图像和参数是基于时间步的更新的隐藏状态而获得的。

在那些实施方式中的一些实施方式中,时间步的更新的隐藏状态是图像,即a。系统改变图像的大小以生成输入图像,例如,使用空间变换函数或者卷积神经网络。

在其它实施方式中,时间步的更新的隐藏状态是2维对象。系统将该对象重塑成图像并且改变该图像的大小以生成输入图像。

系统将画布函数应用于写入以将写入与隐藏画布组合,来生成时间步的更新的隐藏画布(430)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)进行。

在一些实施方式中,画布函数是加性画布函数。在那些实施方式中,系统将写入添加至隐藏画布以生成时间步的更新的隐藏画布。

在一些其它实施方式中,系统通过使用卷积门控递归单元(cgru)神经网络对写入和当前隐藏画布进行处理来应用画布函数以生成更新画布。

图5是使用最后一个时间步的更新的隐藏画布来生成输出图像的示例过程500的流程图。为了方便起见,将过程500描述为由位于一个或者多个位置的一个或者多个计算机的系统进行。例如,根据本说明书被适当地编程的神经网络系统(例如,图1的神经网络系统100)可以进行过程500。

系统获得最后一个(即,最终)时间步的隐藏画布(510)。

系统使用观测函数将最后一个时间步的更新的隐藏画布映射到似然模型的充分统计量(520)。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)进行。

在一些实施方式中,似然模型是二进制数据的伯努利似然模型。

在一些实施方式中,似然模型是例如颜色数据的多项式或者柔性最大值(softmax)似然模型。

在一些实施方式中,似然模型是高斯似然模型。

在一些实施方式中,似然模型表示概率p(x|z),其中,x是输出图像的一组值并且z是一组潜变量。在那些实施方式中,似然模型可以表示适合于输入数据并且以非线性方式依赖于潜变量的任何概率分布。

在一些实施方式中,系统使用观测函数和一组参数对更新的隐藏画布进行处理以生成似然模型的充分统计量。

在一些实施方式中,画布具有与输出图像相同的空间维度。在这些实施方式中,观测函数是在画布上应用的1×1卷积。

在一些其它实施方式中,画布具有与输出图像不同的空间维度。在这些实施方式中,观测函数是从画布生成具有输出图像的空间维度的输出特征图的一个或者多个卷积层。

系统通过从似然模型取样来生成输出图像。例如,这可以由神经网络系统(诸如,图1的神经网络系统100)进行。

图6是在输入图像的重构期间取样每个时间步的一组潜变量的示例过程600的流程图。为了方便起见,将过程600描述为由位于一个或者多个位置的一个或者多个计算机的系统进行。例如,根据本说明书被适当地编程的神经网络系统(例如,图1的神经网络系统100)可以进行过程400。

系统通过将读取函数应用于输入图像和前一时间步的系统的递归神经网络的隐藏状态来生成输入图像的精灵表示(610)。

在一些实施方式中,系统配置为进行以下操作:

rt=fr(x,ht-1;φr)

其中,rt是输入图像x的精灵表示,fr是读取函数,ht-1是以前的时间步的递归神经网络101的更新的隐藏状态121,并且是读取函数的参数。

读取函数使用基于注意力的写入机制。在一些实施方式中,基于注意力的写入机制使用空间变换函数。在那些实施方式中的一些实施方式中,系统可以对空间变换函数的参数进行设置以增加输入图像的维度。

系统使用精灵表示和递归神经网络的隐藏状态来确定潜变量的分布的参数(620)。

在一些实施方式中,系统根据精灵表示的一组学习参数来对精灵表示和递归神经网络的隐藏状态进行非线性变换以生成潜变量的分布的参数。系统可以使用包括全连接和卷积层中的至少一个来进行非线性变换。潜变量的分布的参数可以包括分布的均值和方差。

系统根据确定的参数来从分布取样时间步的一组潜变量(630)。在一些实施方式中,系统从由确定的参数的对应子集来参数化的相应分布取样每个潜变量。

图7是使用一次性泛化来生成数据项的示例过程700的流程图。为了方便起见,将过程700描述为由位于一个或者多个位置的一个或者多个计算机的系统进行。例如,根据本说明书被适当地编程的神经网络系统(例如,图1的神经网络系统100)可以进行过程700。

系统获得一个或者多个场境(context)数据项(710)。在一些实施方式中,场境数据项是图像。

在多个时间步中的每个时间步处,系统生成一个或者多个场境数据项的一组潜变量(720)。

在每个时间步处,系统对时间步的一组潜变量进行处理以更新该时间步的系统的神经网络的隐藏状态(730)。

在每个时间步处,系统使用该时间步的递归神经网络的更新的隐藏状态来更新隐藏画布(740)。上面参照图4更详细地描述了使用递归神经网络的更新的隐藏状态来更新隐藏画布。

系统使用在多个时间步中的最终时间步之后获得的更新的隐藏画布来生成一个或者多个场境图像的泛化数据项(750)。特定数据项的泛化数据项是捕获特定数据项的一些特性但是作为特定数据项的变型的新数据项。

上面参照图5更详细地描述了使用最终隐藏画布来生成数据项。

图8是训练神经网络系统以进行数据项的一次性泛化的示例过程800的流程图。为了方便起见,将过程800描述为由位于一个或者多个位置的一个或者多个计算机的系统进行。

系统获得一个或者多个场境数据项和目标数据项(810)。目标数据项是一个或者多个场境数据项的泛化。

系统通过神经系统对一个或者多个场境数据项进行处理以生成一个或者多个场境数据项的泛化数据项(820)。特定数据项的泛化数据项是捕获特定数据项的一些特性但是作为特定数据项的变型的新数据项。上面参照图8更详细地描述了通过神经网络系统对数据项的群组进行处理以生成该群组的泛化数据项。

系统计算泛化数据项与目标数据项之间的误差的度量的梯度(830)并且穿过神经网络系统反向传播该梯度以生成神经网络系统的一个或者多个参数(840)。

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

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

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

如本说明书所使用的,“引擎”或者“软件引擎”指代提供与输入不同的输出的软件实现的输入/输出系统。引擎可以是编码功能块,诸如库、平台、软件开发包(“sdk”)或者对象。每个引擎都可以实现在任何适当类型的计算设备上,例如,包括一个或者多个处理器和计算机可读介质的服务器、移动电话、平板计算机、笔记本式计算机、音乐播放器、电子书读取器、膝上型或者台式计算机、pda、智能电话、或者其它固定或者便携式设备。另外,两个或者更多个的引擎可以实现在相同计算设备或者不同计算设备上。

本说明书中描述的过程和逻辑流可以由执行一个或者多个计算机程序的一个或者多个可编程计算机进行以通过在输入数据上操作和生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路系统(例如,fpga(现场可编程门阵列)或者asic(专用集成电路))进行,并且装置也可以实现为专用逻辑电路系统。

适于执行计算机程序的计算机包括例如可以是基于,通用或者专用微处理器或者二者、或者任何其它种类的中央处理单元。一般而言,中央处理单元将接收来自只读存储器或者随机存取存储器或者两者的指令和数据。计算机的基本元素是用于进行或者执行指令的中央处理单元和用于存储指令和数据的一个或者多个存储设备。一般而言,计算机还包括用于存储数据的一个或者多个大容量存储设备(例如,磁盘、磁光盘、或者光盘),或者可以操作地耦合以接收来自该大容量存储设备的数据或者将数据传输至该大容量存储设备或者进行两者。然而,计算机不需要有这样的设备。而且,计算机可以嵌入在另一设备中,例如,仅举几个例子,移动电话、个人数字助理(pda)、移动音频或者视频播放器、游戏控制台、全球定位系统(gps)接收器、或者便携式存储设备(例如,通用串行总线(usb)闪存驱动)。

适合存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括:例如,半导体存储器设备(例如,eprom、eeprom和闪速存储器设备)、磁盘(例如,内部硬盘或者可移动盘)、磁光盘、cd-rom盘和dvd-rom盘。处理器和存储器可以由专用逻辑电路系统补充或者被合并到专用逻辑电路系统中。

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

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

计算系统可以包括客户端和服务器。客户端和服务器一般彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。

虽然本说明书包含了许多具体实施方式细节,但是不应该将这些细节视为对任何发明或者可能被要求的内容的范围的限制,而是视为特定发明的特定实施例所特有的特征的描述。本说明书中在单独实施例的场境下描述的某些特征还可以组合形式实现在单个实施例中。相反,在单个实施例的场境下描述的各种特征也可以单独地或者按照任何合适的子组合实现在多个实施例中。而且,虽然上文可以将特征描述为在某些组合中动作并且甚至起初这样要求保护,但是来自要求保护的组合的一个或者多个特征可以在一些情况下从该组合中被删除,并且要求保护的组合可以涉及子组合或者子组合的变型。

同样,虽然在附图中按照特定顺序描绘了操作,但是不应该将其理解为需要按照所示的特定顺序或者按照相继的顺序来进行这样的操作,或者需要进行所有图示的操作以实现期望的结果。在某些环境下,多任务和并行处理可能是有利的。而且,上述实施例中的各个系统模块和组件的分离不应该被理解为在所有实施例中需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。

已经描述了主题的特定实施例。其它实施例在所附权利要求书的范围内。例如,在权利要求书中所记载的动作可以按照不同的顺序进行并且仍然可以实现期望结果。作为一个示例,附图中所示的过程不一定需要所示的特定顺序或者相继顺序来实现期望结果。在某些实施方式中,多任务处理和并行处理可以是有益的。

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