神经网络以及修剪神经网络的权重的方法与流程

文档序号:17994809发布日期:2019-06-22 01:06阅读:501来源:国知局
本文所公开主题大体来说涉及一种利用阈值函数来修剪神经网络的权重的装置及方法,且更具体来说,涉及一种使用解析阈值函数来修剪神经网络的权重的装置及方法,所述解析阈值函数在反向传播期间对权重进行最优修剪,从而增强神经网络的速度性能、神经网络的准确度或同时增强神经网络的速度性能与神经网络的准确度。
背景技术
::深度学习神经网络(deep-learningneuralnetwork,dnn)是用于求解例如计算机视觉相关问题(例如但不限于图像分类及物体检测)的技术。dnn对例如自动驾驶、移动器件及人工智能(artificialintelligent,ai)软件应用等应用具有商业潜力。dnn具有高的计算需求,此可能会妨碍在例如手持式器件(比如智能电话)中部署dnn。由于在典型的dnn中具有大量的层,因此为每一个层确定最优的权重会因各个层依赖于网络内的其他层而造成明显复杂的任务。也就是说,一个层中神经权重的值可依赖于其他层中权重的值,此使得例如对每一层的权重进行修剪的贪婪的逐层阈限方式(greedylayer-wisethresholdingapproach)可能无效且还可能导致总体系统准确度出现明显损失。因此,研究着重于克服与dnns相关联的高计算需求并提供对dnn的权重值进行最优修剪的方式。一种修剪权重的方式着重于迭代技术,所述迭代技术对预先训练的核权重(kernelweight)进行修剪并重新训练网络来恢复由于修剪而损失的准确度。然而,迭代修剪是繁琐且耗时的,这是因为迭代过程持续进行直到凭经验找到会产生可容忍的准确度损失的明确阈值(thresholdvalue)及权重为止。技术实现要素:本发明的目的是提供一种神经网络以及一种所述神经网络产生对速度性能及准确度进行优化的权重的方法。示例性实施例提供一种神经网络,所述神经网络可包括多个层,所述多个层中的每一个层可包括与对应的所述层相关联的一组权重w,所述权重w会增强所述神经网络的速度性能、所述神经网络的准确度或同时增强所述神经网络的所述速度性能与所述神经网络的所述准确度,且其中每一组所述权重w可基于:通过响应于输入训练数据对所述神经网络的输出进行反向传播而得到最小化的成本函数c、所述成本函数c相对于解析阈值函数h(w)的第一参数的导数及所述成本函数c相对于所述解析阈值函数h(w)的第二参数的导数。所述解析阈值函数h(w)对于以0为中心的第一组连续权重值包括值0、且对于第二组连续权重值及第三组连续权重值可包括值1,其中所述第二组连续权重值可不同于且大于所述第一组连续权重值且所述第三组连续权重值可不同于且小于所述第一组连续权重值。所述解析阈值函数h(w)还可包括位于所述第一组连续权重值与所述第二组连续权重值之间的第一边缘以及位于所述第一组连续权重值与所述第三组连续权重值之间的第二边缘,其中所述第一边缘及所述第二边缘中的每一者在0与1之间的锐度可基于所述解析阈值函数h(w)的所述第一参数的值,且所述第一边缘与所述第二边缘之间的距离可基于所述解析阈值函数h(w)的所述第二参数的值。另一个示例性实施例提供一种修剪神经网络的权重的方法,所述方法可包括:基于解析阈值函数h(w)为与所述神经网络的多个层中的每一个层相关联的权重w形成权重函数f(w),所述解析阈值函数h(w)对于以0为中心的第一组连续权重值可包括值0且对于第二组连续权重值及第三组连续权重值可包括值1,其中所述第二组连续权重值可不同于且大于所述第一组连续权重值且所述第三组连续权重值可不同于且小于所述第一组连续权重值,且其中所述解析阈值函数h(w)还可包括位于所述第一组连续权重值与所述第二组连续权重值之间的第一边缘以及位于所述第一组连续权重值与所述第三组连续权重值之间的第二边缘,所述第一边缘及所述第二边缘中的每一者在0与1之间的锐度可基于所述解析阈值函数h(w)的第一参数的值,且所述第一边缘与所述第二边缘之间的距离可基于所述解析阈值函数h(w)的第二参数的值;向所述神经网络输入训练数据以产生基于所述训练数据的输出;通过所述神经网络将所述输出反向传播;以及通过基于成本函数c相对于所述第一参数的导数以及基于所述成本函数c相对于所述第二参数的导数将所述成本函数c最小化来将所述输出与所述训练数据之间的差值最小化,以确定增强所述神经网络的速度性能、所述神经网络的准确度或同时增强所述神经网络的所述速度性能与所述神经网络的所述准确度的一组权重w。再一个示例性实施例提供一种神经网络,所述神经网络可包括:多个层,所述多个层中的每一个层可包括与所述层相关联的一组权重w,所述权重w会增强所述神经网络的速度性能、所述神经网络的准确度或同时增强所述神经网络的所述速度性能与所述神经网络的所述准确度,每一组所述权重w可基于:通过响应于输入训练数据对所述神经网络的输出进行反向传播而得到最小化的成本函数c、所述成本函数c相对于解析阈值函数h(w)的第一参数的导数及所述成本函数c相对于所述解析阈值函数h(w)的第二参数的导数,其中所述解析阈值函数h(w)对于以0为中心的第一组连续权重值可包括值0且对于第二组连续权重值及第三组连续权重值可包括值1,其中所述第二组连续权重值可不同于且大于所述第一组连续权重值且所述第三组连续权重值可不同于且小于所述第一组连续权重值,且其中所述解析阈值函数h(w)还可包括位于所述第一组连续权重值与所述第二组连续权重值之间的第一边缘以及位于所述第一组连续权重值与所述第三组连续权重值之间的第二边缘,所述第一边缘及所述第二边缘中的每一者在0与1之间的锐度可基于所述解析阈值函数h(w)的所述第一参数的值,且所述第一边缘与所述第二边缘之间的距离可基于所述解析阈值函数h(w)的所述第二参数的值。[解决问题的方案]根据本发明,使用解析阈值函数对权重进行修剪,且通过训练来学习解析阈值函数的参数。因此,提供对速度性能及准确度进行优化的神经网络以及所述神经网络的方法。附图说明在以下部分中,将参照各图中所示的示例性实施例来阐述本文所公开的主题的各个方面,在各图中:图1示出根据本文所公开主题的神经网络中的示例性层以及应用解析阈值函数来形成解析权重函数f(w)以对示例性层中的权重进行最优修剪。图2示出视觉几何小组(visualgeometrygroup,vgg)16dnn的架构。图3a示出根据本文所公开主题的示例性阈值函数的曲线图。图3b示出根据本文所公开主题的示例性权重函数f(w)的曲线图。图4a、图4b、图4c、图4d、图4e及图4f示出根据本文所公开主题的在参数α及参数β具有不同的值的情况下示例性阈值函数h(w)的六个示例性曲线图。图5a及图5b分别示出根据本文所公开主题,训练以及重复进行的反向传播可如何对参数β进行优化以及在对参数β进行优化时阈值函数h(w)的收敛。图6示出根据本文所公开主题的示例性阈值函数h(w)及示例性阈值函数h(w)的第二导数。图7示出根据本文所公开主题的对神经网络的权重进行修剪的示例性方法的流程图。图8示出包括根据本文所公开主题的神经网络的电子器件,所述神经网络的权重已使用阈值函数h(w)进行了修剪。[符号的说明]100:示例性层/层;100′:层;101、601、602:处;200:架构/vgg16架构;301a:边缘/第一边缘;301b:边缘/第二边缘;302:宽度/距离;303:第一组连续权重值;304:第二组连续权重值;305:第三组连续权重值;306a、306b:跃迁区;700:示例性方法;701、702、703、704、705、706、707:步骤;800:电子器件/电子系统;810:控制器;820:输入/输出器件;830:存储器;840:接口/无线接口;850:总线;conv1_1、conv1_2、conv2_1、conv2_2、conv3_1、conv3_2、conv3_3、conv4_1、conv4_2、conv4_3、conv5_1、conv5_2、conv5_3:卷积层;f(w):权重函数/示例性权重函数/解析权重函数;h(w):阈值函数/解析阈值函数/示例性阈值函数/解析函数;pl:池化层;x:输入神经元;y:输出神经元;w:权重/连接权重/值;α:参数/第一参数;β:参数/第二参数。具体实施方式在以下详细说明中,阐述许多具体细节来提供对本公开的透彻理解。然而,所属领域中的技术人员应理解,无需这些具体细节也可实践所公开的各个方面。在其他情形中,未详细阐述众所周知的方法、流程、组件及电路,以免使本文所公开的主题模糊不清。本说明书通篇中所提及的“一个实施例(oneembodiment)”或“实施例(anembodiment)”意指结合所述实施例所阐述的特定特征、结构或特性可包括在本文所公开的至少一个实施例中。因此,在本说明书通篇中各处出现的短语“在一个实施例中(inoneembodiment)”或“在实施例中(inanembodiment)”或者“根据一个实施例(accordingtooneembodiment)”(或具有相似含义的其他短语)可能未必均指同一实施例。此外,在一个或多个实施例中,特定特征、结构或特性可采用任何适合的方式进行组合。就此而言,本文所用的词“示例性(exemplary)”意指“用作实例、例子或例示”。本文被阐述为“示例性”的任何实施例不应被视为与其他实施例相比必定是优选的或有利的。另外,根据本文中的论述的上下文而定,单数用语可包括对应的复数形式且复数用语可包括对应的单数形式。还应注意,本文中所示及所论述的各个图(包括组件图)仅是出于例示目的,而并非按比例示出。相似地,示出各种波形及时序图仅是用于例示目的。举例来说,为清晰起见,可相对于其他元件夸大元件中的一些元件的尺寸。另外,在适当情况下,在各个图中重复使用参考编号来指示对应的元件和/或类似元件。本文所用术语仅是用于阐述特定实施例的目的,而非旨在限制所主张的主题。除非上下文另外清楚地指明,否则本文所用单数形式“一(a、an)”及“所述(the)”旨在也包括复数形式。还应理解,当在本说明书中使用用语“包括(comprises和/或comprising)”时,是指明所陈述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。本文所用用语“第一(first)”、“第二(second)”等被用作位于所述用语后面的名词的标签,且除非明确定义,否则所述用语并不隐含着任何类型的次序(例如,空间次序、时间次序、逻辑次序等)。此外,在两个或更多个图中可使用相同的参考编号来指代具有相同或相似的功能的部件、组件、区块、电路、单元或模块。然而,这种用法仅是为了使例示简洁且易于论述起见;所述用法并不隐含着这种组件或单元的构造细节或架构细节在所有实施例中均是相同的或者这些共同提及的部件/模块是实施本文中所公开特定实施例的教示内容的唯一方式。除非另外定义,否则本文所用所有用语(包括技术及科学用语)的含义均与本主题所属领域中的一般技术人员所通常理解的含义相同。还应理解,用语(例如在常用词典中所定义的用语)应被解释为具有与其在相关技术的上下文中的含义一致的含义,且除非在本文中明确定义,否则不应将其解释为具有理想化或过于正式的意义。在一个实施例中,权重修剪技术使用解析阈值函数,所述解析阈值函数最优地减少权重的数目,从而提高神经网络的性能。解析阈值函数可应用于神经网络的各个层的权重以使得量值小于阈值的权重被设定成零,且大于阈值的权重不受影响。另外,阈值函数是可微分的,且阈值函数的参数可在反向传播期间被优化。解析阈值函数可在反向传播期间与网络权重同时进行训练,从而避免耗时的迭代过程。在一个实施例中,成本函数的最小化还对阈值函数进行优化以产生宽度相对较宽且边缘相对较锐利的阈值函数,同时还提供具有最小数目的非零权重的神经网络。成本函数可包括正则化项,所述正则化项可最优地将解析阈值函数的某些参数最小化,从而使阈值函数具有相对较宽的宽度以及相对较锐利的边缘。可使用阈值函数的输出值而非输入值来进行推断。由于在推断期间使用较少的乘法与累加(multiplyandaccumulate,mac)运算,因此由本文所公开技术产生的经优化的权重值具有相对较少的使用其他修剪技术时会获得的非零参数,且从而使用较少的存储器。图1示出根据本文所公开主题的神经网络中的示例性层100以及应用解析阈值函数来形成解析权重函数f(w)以对示例性层100中的权重进行最优修剪。无论可包括示例性层100的神经网络的复杂程度如何,层100的输出神经元y均可被形成为输入神经元x与输出到输出神经元y的连接权重w的乘积之和,如图1的左侧示出。在一个实施例中,示例性层100可为具有例如图2中所示vgg16dnn的架构200的dnn的一部分。vgg16的架构200具体来说包括13个卷积(convolutional,conv)层、三个全连接(fullyconnected,fc)层及五个池化层(poolinglayer,pl)。vgg16架构200的输入被施加到卷积层conv1_1,且输出是在分类(classification)处提供。返回参照图1,如本文中所公开,可在101处对层100的权重w应用解析阈值函数h(w)以形成权重函数f(w)来取代权重w,从而形成层100′。在一个实施例中,每一个权重w可乘以解析函数h(w)。在图1的上方中心处示出示例性权重函数f(w)的曲线图。阈值函数h(w)通常可被表征为具有以下品质:将量值小于阈值的权重的值设定成零而不会影响量值大于阈值的权重的值。在一个实施例中,阈值函数h(w)可为:其中α是控制阈值函数h(w)的锐度的参数,且β是控制第一边缘与第二边缘之间的距离的参数。图3a示出方程式(1)的示例性阈值函数的曲线图。方程式(1)中的参数α控制阈值函数h(w)的边缘301a及301b的锐度,即,参数α控制边缘301a及边缘301b在h(w)=0与h(w)=1之间的变化速率。方程式(1)中的参数β控制在h(w)=0.5处两个边缘301a与301b之间的宽度302。如图3a所示,阈值函数h(w)对于以0为中心的第一组连续权重值303具有值0。另外,阈值函数h(w)对于比第一组连续权重值303大的第二组连续权重值304具有值1,且对于比第一组连续权重值303小的第三组连续权重值305具有值1。阈值函数h(w)的第一边缘301a位于第一组连续权重值303与第二组连续权重值304之间。第二边缘301b位于第一组连续权重值303与第三组连续权重值305之间。阈值函数h(w)的值在第一边缘301a的区与第二边缘301b的区中在0与1之间跃迁。当阈值函数h(w)在0与1之间跃迁时第一边缘301a及第二边缘301b中的每一者的锐度是基于参数α的值(即,阈值函数h(w)的边缘301a及301b的锐度),且第一边缘301a与第二边缘301b之间在h(w)=0.5处的距离302是基于参数β的值。在一个实施例中,可将一层的权重中的每一个权重乘以阈值函数h(w)以将权重函数f(w)形成为:图3b示出方程式(2)的权重函数f(w)的曲线图。权重函数f(w)还在图1的上方中心处示出。对于第一组连续权重值303来说,权重函数f(w)具有值0。权重函数f(w)对于比第一组连续权重值303大的第二组连续权重值304具有值w,且对于比第一组连续权重值303小的第三组连续权重值305具有值w。权重函数f(w)包括分别对应于第一边缘301a及第二边缘301b的跃迁区306a及306b。随着参数α的值变小,第一边缘301a及第二边缘301b变得更锐利,且跃迁区306a及跃迁区306b在w方向上变得更小。图4a到图4f示出在参数α及参数β具有不同的值的情况下方程式(1)的阈值函数h(w)的六个示例性曲线图,以提供对参数α及参数β可如何影响阈值函数h(w)及权重函数f(w)的视觉感受。在图4a到图4c中,参数α从α=0.0001(图4a)到α=0.1(图4c)变化,而参数β保持恒定为β=4。如在图4a到图4c中可看出,参数α的值越小,阈值函数h(w)在0与1之间的跃迁便越锐利。在图4d到图4f中,参数β在β=2(图4d)到β=4(图4f)变化,而参数α保持恒定为α=0.0001。从图4d到图4f可看出,参数β越小,阈值函数h(w)的边缘之间在h(w)=0.5处的宽度便越大。因此,参数α及β的较小的值为阈值函数h(w)提供更鲁棒的阈值及更宽的宽度,此转而会提供相对大数目的零权重,或者换句话说,提供相对较少的非零权重。阈值函数h(w)中的参数α及β是可训练的且可在dnn的输出反向传播回输入期间进行优化。图5a及图5b分别示出根据本文所公开主题,训练以及重复进行的反向传播可如何对参数β进行优化以及在对参数β进行优化时阈值函数h(w)的收敛。图5a中的曲线示出参数β收敛到最优值。由于参数β是换算值(scalingvalue),因此参数β不具有单位。在图5b中,随着训练及反向传播的迭代增加且参数β变得优化,阈值函数h(w)的形状收敛到在h(w)=0.5处具有最优的锐利边缘及最优间距。因此,由于使用阈值函数h(w)会使非零权重的数目在反向传播期间自动优化而非凭经验选择阈值来最终在dnn的不同层中达到可接受数目的非零权重,因此参数α及β的可训练性相对于依靠迭代修剪及重新训练的其他修剪技术而言提供明显的优点。最优地减少非零权重的数目转而会最优地减少运行dnn的器件的计算负担。通过减少计算负担,器件在运行通过本文所公开的可训练权重修剪技术得到优化的dnn时会运行得更快速且消耗更少的功率,这是因为与使用不同的权重修剪技术来优化dnn相比,dnn包括更少的乘法与累加(mac)运算。为了在反向传播操作期间并入参数α及β的更新,可为了优化dnn而被最小化的总成本函数c可为:其中c是要被最小化的总成本,l是层的数目,j是最末层l中权重的索引,λ1及λ2是用于将参数α及参数β的值最小化的正则化参数,z是预测,且y是地面真值(groundtruth)。将方程式(3)(即,总成本函数c)最小化的其中一个目标是找到一组权重,所述一组权重提供预测z(输出)与地面真值y之间的最小差值、以及参数α及β的最小值,以使权重函数f(w)具有边缘锐利及宽度宽的品质。参数α及β可使用梯度下降技术进行优化。权重可更新为:其中δw表示权重w的当前值的变化。权重函数f(w)中的参数α及β可被更新为及其中δα表示参数α的当前值的变化,且δβ表示参数β的当前值的变化。此表明,可找到权重w的值以及函数参数α及β的值以使得成本函数c停留在局部最小值(localminimum)。参数α及β的正则化项对参数α及β施加软约束条件以具有小的值。可按照经验来选择参数α及β的正则化项。另外,为将参数α及β限制为正值,可使用凸集投影(convexprojection)来施加硬积极性约束(hardpositivityconstraint)。由于权重函数f(w)不需要计算且权重函数f(w)的值具有高的稀疏度(即,与权重w的值相比具有较少的非零值),因此一旦训练完成,便保存权重函数f(w)的值而非权重w的值,从而在推理时节省时间及计算成本。可选择参数α及β的初始值来改善参数α及β的训练及反向传播训练。在一个实施例中,参数α及β的初始值可通过求解以下方程式(7)来选择:图6在601处示出示例性阈值函数h(w)及在602处示出h(w)的第二导数。图6中的灰色阴影区对应于图3a中所示以0为中心的第一组连续权重值303。图7示出根据本文所公开主题的对神经网络的权重进行修剪的示例性方法700的流程图。在701处,所述方法开始。在702处,基于解析阈值函数h(w)为与神经网络的多个层中的每一个层相关联的权重w形成权重函数f(w)。在一个实施例中,将每一个权重w乘以解析阈值函数h(w)以形成权重函数f(w)。在703处,向神经网络输入训练数据以产生基于训练数据的输出。在704处,通过神经网络将输出反向传播。在705处,通过基于成本函数c相对于阈值函数h(w)的第一参数α的导数以及基于成本函数c相对于阈值函数h(w)的第二参数β的导数将成本函数c最小化来将输出与训练数据之间的差值最小化,以确定会增强神经网络的速度性能、神经网络的准确度或同时增强神经网络的速度性能与神经网络的准确度的一组权重w。在706处,重复地进行向神经网络输入训练数据以产生基于训练数据的输出、通过神经网络将输出反向传播以及将输出与训练数据之间的差值最小化的操作,以确定会优化神经网络的速度性能、神经网络的准确度或同时优化神经网络的速度性能与神经网络的准确度的所述一组权重w。在707处,步骤结束。图8示出包括根据本文所公开主题的神经网络的电子器件800,所述神经网络的权重已使用阈值函数h(w)进行了修剪。电子器件800可用于但不限于计算器件、个人数字助理(personaldigitalassistant,pda)、膝上型计算机、移动计算机、网络平板计算机(webtablet)、无线电话、手机、智能电话、数字音乐播放器、或者有线或无线电子器件。电子器件800可包括通过总线850彼此耦合的控制器810、输入/输出器件820(例如但不限于,小键盘、键盘、显示器、触摸屏显示器、相机和/或图像传感器)、存储器830及接口840。控制器810可包括例如至少一个微处理器、至少一个数字信号处理器、至少一个微控制器等。存储器830可被配置成存储将由控制器810使用的命令代码、或用户数据。电子器件800及电子器件800的各种系统组件可形成一种用于提供根据本文所公开主题的神经网络的系统,所述神经网络的权重已使用阈值函数h(w)进行了修剪。接口840可被配置成包括无线接口,所述无线接口被配置成使用射频(radiofrequency,rf)信号来将数据传送到无线通信网络或从无线通信网络接收数据。无线接口840可包括例如天线、无线收发器等等。电子系统800还可用于通信系统的通信接口协议,例如但不限于:码分多址(codedivisionmultipleaccess,cdma)、全球移动通信系统(globalsystemformobilecommunications,gsm)、北美数字通信(northamericandigitalcommunications,nadc)、扩展时分多址(extendedtimedivisionmultipleaccess,e-tdma)、宽带cdma(widebandcdma,wcdma)、cdma2000、wi-fi、市政wi-fi(municipalwi-fi,muniwi-fi)、蓝牙、数字增强无线电信(digitalenhancedcordlesstelecommunication,dect)、无线通用串行总线(wirelessuniversalserialbus,wirelessusb)、快速低延迟存取与无缝切换的正交分频多路复用(fastlow-latencyaccesswithseamlesshandofforthogonalfrequencydivisionmultiplexing,flash-ofdm)、电气及电子工程师学会(instituteofelectricalandelectronicsengineer,ieee)802.20、通用分组无线电服务(generalpacketradioservice,gprs)、iburst、无线宽带(wirelessbroadband,wibro)、全球互通微波存取(worldwideinteroperabilityformicrowaveaccess,wimax)、高级全球互通微波存取(wimax-advanced)、通用移动电信服务-时分双路复用(universalmobiletelecommunicationservice–timedivisionduplex,umts-tdd)、高速分组存取(highspeedpacketaccess,hspa)、演进数据优化(evolutiondataoptimized,evdo)、高级长期演进(longtermevolution-advanced,lte-advanced)、多信道多点分配服务(multichannelmultipointdistributionservice,mmds)等等。本说明书所述的主题及操作的实施例可在数字电子电路中实施,或者在包括本说明中所公开的结构及其等效结构的计算机软件、固件或硬件中实施,或者在其中一者或多者的组合中实施。本说明书所述主题的实施例可被实施为一个或多个计算机程序,即,在计算机存储介质上进行编码以由数据处理装置执行或用于控制数据处理装置的操作的计算机程序指令的一个或多个模块。作为另外一种选择或另外地,程序指令可被编码在人工产生的传播信号(例如,机器产生的电信号、光学信号或电磁信号)中,产生所述人工产生的传播信号是为了对信息进行编码以传送到适合的接收装置从而由数据处理装置执行。计算机存储介质可为计算机可读存储器件、计算机可读存储衬底、随机或串行存取存储器阵列或器件、或它们的组合,或者可包括在计算机可读存储器件、计算机可读存储衬底、随机或串行存取存储器阵列或器件、或它们的组合中。此外,尽管计算机存储介质并非传播信号,然而计算机存储介质可为被编码在人工产生的传播信号中的计算机程序指令的来源或目的地。计算机存储介质还可为一个或多个单独的实体组件或媒体(例如,多个压缩盘(compactdisk)、盘或其他存储器件)或者可包括在一个或多个单独的实体组件或媒体(例如,多个压缩盘、盘或其他存储器件)中。本说明书所述操作可被实施为由数据处理装置对存储在一个或多个计算机可读存储器件上的数据或从其他来源接收到的数据执行的操作。用语“数据处理装置”囊括用于处理数据的各种各样的装置、器件及机器,包括例如可编程处理器、计算机、系统芯片或者上述中的多者或其组合。所述装置可包括专用逻辑电路,例如现场可编程门阵列(fieldprogrammablegatearray,fpga)或应用专用集成电路(application-specificintegratedcircuit,asic)。除了包括硬件之外,装置还可包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈(protocolstack)、数据库管理系统、操作系统、跨平台运行时环境(cross-platformruntimeenvironment)、虚拟机(virtualmachine)或其组合的代码。所述装置及执行环境可实现各种不同的计算模型基础设施,例如,网络服务、分布式计算及网格计算基础设施。计算机程序(也被称为程序、软件、软件应用、脚本或代码)可以任何形式的编程语言来编写,包括编译语言(compliedlanguage)或解释语言(interpretedlanguage)、说明性语言(declarativelanguage)或过程语言(procedurallanguage),且计算机程序可以任何形式部署,包括作为独立程序部署或作为模块、组件、子程式、对象或适合用于计算环境中的其他单元部署。计算机程序可对应于但不需要对应于文件系统中的文件。程序可存储在持有其他程序或数据(例如,存储在标记语言文档(markuplanguagedocument)中的一个或多个脚本)的文件的一部分中,存储在专用于所述程序的单个文件中,或者存储在多个协调文件(例如,存储有一个或多个代码模块、代码子程序或代码部分的文件)中。计算机程序可被部署成在一个计算机上执行或者在位于一个站点或分布在多个站点中且由通信网络互连的多个计算机上执行。本说明书所述过程及逻辑流可由执行一个或多个计算机程序的一个或多个可编程处理器执行以通过对输入数据进行操作以及产生输出来执行动作。过程及逻辑流还可由专用逻辑电路(例如,现场可编程门阵列(fpga)或应用专用集成电路(asic))执行,且装置也可实施为所述专用逻辑电路。适合于执行计算机程序的处理器包括例如通用微处理器及专用微处理器二者以及任何种类的数字计算机的任何一个或多个处理器。一般来说,处理器可从只读存储器或随机存取存储器或者从二者接收指令及数据。计算机的关键元件是用于根据指令执行动作的处理器以及用于存储指令及数据的一个或多个存储器器件。一般来说,计算机还将包括用于存储数据的一个或多个大容量存储器件(例如,磁盘、磁光盘或光盘)或者可操作性地耦合到一个或多个大容量存储器件以从所述一个或多个大容量存储器件接收数据或将数据传输到所述一个或多个大容量存储器件或者同时接收数据及传输数据。然而,计算机并非必须具有这种器件。此外,计算机可嵌入在另一个器件中,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(globalpositioningsystem,gps)接收器或便携式存储器件(例如,通用串行总线(usb)闪存驱动器)中,这只是列举几个例子。适合存储计算机程序指令及数据的器件包括所有形式的非易失性存储器、介质及存储器器件,包括例如:半导体存储器器件,例如,可擦可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、电可擦可编程只读存储器(electrically-erasableprogrammablereadonlymemory,eeprom)及闪存存储器器件(flashmemorydevice);磁盘,例如内部硬盘或可抽换盘;磁光盘;及压缩盘只读存储器(compactdisk-readonlymemory,cd-rom)及数字通用盘只读存储器(digitalversatiledisk-readonlymemory,dvd-rom)盘。处理器及存储器可由专用逻辑电路补充或并入专用逻辑电路中。为实现与用户的交互,本说明书所述主题的实施例可在具有向用户显示信息的显示器件(例如,阴极射线管(cathoderaytube,crt)或液晶显示器(liquidcrystaldisplay,lcd)监视器)以及可供用户向计算机提供输入的键盘及定点器件(例如,鼠标或轨迹球)的计算机上实施。也可使用其他类型的器件来实现与用户的交互;举例来说,向用户提供的反馈可为任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;且来自用户的输入可以包括声音输入、语音输入或触觉输入在内的任何形式接收。本说明书所述主题的实施例可实施在以下计算系统中:包括后端组件(例如,作为数据服务器)的计算系统;或包括中间件组件(例如,应用服务器)的计算系统;或包括前端组件(例如,具有图形用户接口或网络浏览器的用户计算机,用户可通过所述图形用户接口或网络浏览器与本说明书所述主题的实施方式交互)的计算系统;或者包括一个或多个这种后端组件、中间件组件或前端组件的任何组合的计算系统。系统的各个组件可通过数字数据通信的任何形式或介质(例如通信网络)进行互连。通信网络的实例包括局域网(localareanetwork,“lan”)及广域网(wideareanetwork,“wan”)、互联网络(例如,互联网(internet))及对等网络(例如,特定对等网络(adhocpeer-to-peernetwork))。计算系统可包括用户及服务器。用户与服务器一般来说彼此相距遥远且通常通过通信网络进行交互。用户与服务器的关系是通过在相应的计算机上运行且彼此具有用户-服务器关系的计算机程序建立的。尽管本说明书含有许多具体实施细节,然而这些具体实施细节不应被视为对任何发明的范围或者可主张的范围进行限制,而是应被视为对特定发明的特定实施例的专门特征的说明。在本说明书中在各个单独实施例的上下文中阐述的某些特征也可在单个实施例中组合实施。相反,在单个实施例的上下文中阐述的各种特征也可在多个实施例中分开实施或者以任何适合的子组合实施。此外,尽管以上将各特征阐述为以某些组合发挥作用且甚至在开始时便主张如此,然而所主张组合中的一个或多个特征在一些情形中可从所述组合去除,且所主张组合可涉及子组合或子组合的变形。相似地,尽管在图式中以特定次序示出了各个操作,然而这不应被理解为需要以图中所示次序或以顺序性次序来执行这些操作或者需要执行所有所示出的操作来实现期望结果。在某些情形中,多任务(multitasking)及并行处理可为有利的。此外,以上所述实施例中的各种系统组件的分离不应被理解为在所有实施例中均需要这种分离,且应理解,所述程序组件及系统一般来说可一同集成在单个软件产品中或者封装到多个软件产品中。因此,本发明已阐述了主题的特定实施例。还存在处于以上权利要求书范围内的其他实施例。在一些情形中,在权利要求书中所述的动作可以不同的次序执行且仍会实现期望的结果。另外,在附图中所示出的过程未必需要采用图中所示特定次序或顺序性次序才能实现期望的结果。在某些实施方式中,多任务及并行处理可为有利的。如所属领域中的技术人员将认识到,可在各种各样的应用中对本文所述创新概念进行修改及变化。因此,所主张主题的范围不应仅限于以上所论述的任何具体示例性教示内容,而是由以上权利要求书来界定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1