模型优化方法、电子设备和计算机程序产品与流程

文档序号:33190857发布日期:2023-02-04 08:23阅读:34来源:国知局
模型优化方法、电子设备和计算机程序产品与流程

1.本公开的实施例总体上涉及计算机技术,具体地涉及模型优化方法、电子设备和计算机程序产品,可用于深度学习领域,特别是深度学习模型优化领域。


背景技术:

2.当人们希望使用例如深度学习的机器学习来解决问题时,经常会出现无法找到足够的数据以用于训练模型的情况。使用较少的数据来训练机器学习模型很可能会导致不良的训练结果。另一方面,即使人们获得了可用于训练机器学习模型的大量数据,他们也可能没有足够的例如专用处理单元的计算资源或者存储资源来训练机器学习模型,从而同样无法获得高质量的训练结果。
3.迁移学习可以通过使用预训练模型形式的知识来解决前述问题。预训练模型可以是通过使用大型数据集和资源而被创建的,然后可以使用特定的小型数据集和更少的资源对预训练模型中的所有层进行微调以优化预训练模型。然而,传统的模型优化方法在精细度等方面中存在不足,因此难以有效地优化预训练模型的性能和训练效果。


技术实现要素:

4.本公开的实施例提供了模型优化方法、电子设备和计算机程序产品。
5.在本公开的第一方面中,提供了一种模型优化方法。该方法包括:确定深度学习模型的初始学习率组合,初始学习率组合包括多个学习率,每个学习率是针对深度学习模型的多个层中的一个层确定的,多个学习率包括静态学习率和动态学习率;以及调整初始学习率组合,以得到目标学习率组合,目标学习率组合被用于训练深度学习模型时所达到的准确率高于等于第一阈值准确率。
6.在本公开的第二方面中,提供了一种电子设备。该电子设备包括:至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令,指令当由至少一个处理单元执行时,使得设备执行动作,动作包括:确定深度学习模型的初始学习率组合,初始学习率组合包括多个学习率,每个学习率是针对深度学习模型的多个层中的一个层确定的,多个学习率包括静态学习率和动态学习率;以及调整初始学习率组合,以得到目标学习率组合,目标学习率组合被用于训练深度学习模型时所达到的准确率高于等于第一阈值准确率。
7.在本公开的第三方面中,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行使得机器执行根据本公开的第一方面所描述的方法的任意步骤。
8.提供发明内容部分是为了以简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的实施例的关键特征或必要特征,也无意限制本公开的实施例的范围。
附图说明
9.通过结合附图对本公开的示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开的示例性实施例中,相同的参考标号通常代表相同部件。
10.图1示出了根据本公开的实施例的设备和/或方法可以在其中被实施的模型优化环境100的示意图;
11.图2示出了根据本公开的实施例的模型优化方法200的流程图;
12.图3示出了根据本公开的实施例的局部最小值问题曲线300的示意图;
13.图4示出了根据本公开的实施例的模型优化方法400的流程图;以及
14.图5示出了可以用来实施本公开的实施例的示例设备500的示意性框图。
15.在各个附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
16.下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以按照各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
17.在本文中使用的术语“包括”及其变形表示开放性包括,例如,“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
18.如以上在背景技术中所描述的,迁移学习可以通过使用预训练模型形式的知识来解决用于训练机器学习模型的数据集或者计算和存储资源不足的情况。
19.具体而言,迁移学习是使用在一个过程/活动中学到的知识并将其应用于不同任务的过程。举例而言,一个擅长卡罗姆斯的玩家可以将这些知识应用于学习如何玩台球游戏。
20.回到例如深度学习的机器学习的角度,如果模型a的任务是标识1000种物体,例如帽子、猫、垫子等,而我们手头有这样的经过训练的模型。现在假设我们要创建模型b来检测猫/狗分类器。即使我们有一个小数据集,我们也可以在模型b的训练期间使用模型a的知识并产生当前最优的结果。
21.可以使用卷积神经网络的示例网络图来理解迁移学习。尽管在实践中卷积神经网络的网络很大、很复杂,并且会包含各种其他单元,但是当使用迁移学习时,可以使用利用大型数据集而被预训练的预训练模型,并且使用特定于用户的小型数据集微调卷积神经网络的网络所有层,从而实现针对卷积神经网络的迁移学习。
22.然而,传统的模型优化方法在对例如深度学习模型的预训练模型进行迁移之后的微调时,会在精细度等方面中存在不足,因此难以有效地优化预训练模型的性能和训练效果,从而会影响使用预训练模型的用户的用户体验。
23.为了至少部分地解决上述问题以及其他潜在问题中的一个或者多个问题,本公开
的实施例提出了一种模型优化方法。利用该方法,在微调阶段,可以通过混合差分学习率来扩展差分学习率。例如,对于深度学习模型的每个层,在微调期间的学习率可以是固定的静态学习率,也可以是动态学习率。此外,利用该方法,还可以使用元启发方式来找到混合最优层特定的学习率策略。例如,可以使用模拟退火作为超参数优化器来搜索混合最优层特定学习率策略。
[0024]“差分学习率”是指在对模型的训练期间针对模型的不同层设置不同的学习率。此外,也可以将模型的层分成不同的层组,并且针对每个组设置不同的学习率。采取上述方法有助于在模型训练阶段得到理想的结果。换言之,“差分学习率”是指在模型训练阶段通过针对模型的不同层或者层组设置不同的学习率来控制模型训练期间每个层的权重变化率。
[0025]
一般而言,例如用于图像分类的深度学习模型由多个层组成,其中至少一个初始层可以用于学习边缘、形状等通用特征,至少一个中间层可以学习与训练数据集相关的特定细节,至少一个末尾层可以用于学习更为粗糙的特征。因此,通过不会过多地改变初始层的学习权重,因为它们已经通常能够胜任例如检测边缘等特征的工作。因而,中间层将具有复杂的特征,因而如果稍微修改它们的学习权重,则这些特征可能会在一定程度上有助于模型的优化,因此可以对中间层的学习率进行一些微调。末尾层相对于中间层而言则可以具有更小的学习权重。由于学习权重与学习率可以成反比,因此可以针对用于图像分类的深度学习模型的初始层、中间层和末尾层设置不同的学习率。初始层的学习率可以很小,中间层的学习率将高于初始层,而最后的末尾层将具有最高的学习率。
[0026]
初始层和中间层的学习率的高低可以取决于预训练模型和所需的模型之间的数据相关性。例如,如果任务是创建一个狗/猫分类器,而预训练模型已经擅长识别猫,则可以使用较小的学习率。但是,如果任务是在卫星图像或者医学图像上创建一些模型,则学习率将略高一些。
[0027]
如前所述,本公开的实施例所提出的模型优化方法可以使用混合差分学习率,并且可以使用元启发方式来找到混合最优层特定的学习率策略。以下参照附图来具体描述根据本公开的实施例的模型优化方法。
[0028]
图1示出了可以在其中实现本公开的某些实施例中的模型优化方法的模型优化环境100的示意性框图。根据本公开的实施例,模型优化环境100可以是云环境。
[0029]
在如图1中所示的模型优化环境100中,计算设备110可以确定深度学习模型的初始学习率组合120,并且可以调整初始学习率组合120,以得到目标学习率组合130。
[0030]
此外,计算设备110还可以接收外部输入,例如包括接收深度学习模型、深度学习模型的初始准确率、预定学习率集合、用于对深度学习模型进行训练的参数、针对用于对深度学习模型进行训练的参数的预定值集合等等。计算设备110可以基于接收到的外部输入来确定初始学习率组合120,并且调整初始学习率组合120,以得到目标学习率组合130,其中目标学习率组合130被用于训练深度学习模型时所达到的准确率高于等于第一阈值准确率。计算设备110还可以基于接收到的外部输入来调整初始学习率组合120和用于对深度学习模型进行训练的参数的值,以得到目标学习率组合130和参数的目标值,其中使用目标学习率组合130和参数的目标值对深度学习模型进行训练所达到准确率高于等于第二阈值准确率。
[0031]
除此之外,计算设备110还可以确定第一阈值准确率和第二阈值准确率的值。
[0032]
应当理解,模型优化环境100仅仅是示例性而不是限制性的,并且其是可扩展或者可限缩的。例如,模型优化环境100中可以包括更多的计算设备,从而使得可以满足更多用户同时利用更多的计算设备来确定更多的初始学习率组合并且获得更多的目标学习率组合的需求。
[0033]
以下以图1中所包括的计算设备110、初始学习率组合120和目标学习率组合130为例来说明图2和图4中所示出的模型优化方法200和模型优化方法400。
[0034]
图2示出了根据本公开的实施例的模型优化方法200的流程图。方法200可以由图1中所示的计算设备110来实现,也可以由其他适当的设备来实现。应当理解,模型优化方法200还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的实施例的范围在此方面不受限制。
[0035]
在框202,计算设备110确定深度学习模型的初始学习率组合120。根据本公开的实施例,初始学习率组合120包括多个学习率,每个学习率是针对深度学习模型的多个层中的一个层确定的,多个学习率包括静态学习率和动态学习率。
[0036]
例如,假设深度学习模型包括5个层,并且该深度学习模型初始时第一层是第一特定值的静态学习率,第二层是第二特定值的静态学习率,第三层是第三特定值的静态学习率,第四层是第一动态学习率,第五层是第二动态学习率。这时,该深度学习模型的初始学习率组合120是:第一特定值的静态学习率、第二特定值的静态学习率、第三特定值的静态学习率、第一动态学习率以及第二动态学习率的组合。
[0037]
根据本公开的实施例动态学习率可以包括周期学习率和热重启学习率。
[0038]
根据本公开的实施例,确定深度学习模型的初始学习率组合120包括针对多个层中的每个层,从预定学习率集合确定一个学习率。例如,预定学习率集合可以包括:值为0.05的静态学习率、值为0.1的静态学习率、值为0.25的静态学习率、值为0.5的静态学习率、作为周期学习率的第一动态学习率以及作为热重启学习率的第二动态学习率。通过利用预定学习率集合,可以减少初始学习率组合120中的学习率的取值范围,从而可以使模型优化过程更为高效。
[0039]
在框204,计算设备110调整初始学习率组合120,以得到目标学习率组合130,其中目标学习率组合130被用于训练深度学习模型时所达到的准确率高于等于第一阈值准确率。
[0040]
根据本公开的实施例,计算设备110例如可以使用模拟退火算法来调整初始学习率组合120。
[0041]
模拟退火(sa)算法模拟物理退火过程,并且可以用于优化深度学习模型中的例如学习率的参数。模拟退火算法对于存在很多局部最小值的情况非常有用,因为在这种情况下例如梯度下降这样的算法会被卡住。
[0042]
图3示出了根据本公开的实施例的局部最小值问题曲线300的示意图。如图3中所述,局部最小值问题曲线300包括起始点302、局部最小值点304、局部高点306以及全局最小值点308,并且局部最小值问题曲线300中从起始点302指向局部最小值点304表示梯度下降的方向。
[0043]
在图3中所示出的局部最小值问题曲线300中,由于局部高点306的存在,当从起始点302开始进行梯度下降时,梯度下降会卡在局部最小值点304,而无法到达全局最小值点
308。
[0044]
如前所述,可以使用模拟退火算法来克服这一问题。
[0045]
首先,从初始解s=s0开始。这可以是符合可接受解决方案标准的任何解决方案。并且可以从初始温度t=t0开始进行模拟退火算法。
[0046]
而后,设置温度降低函数。通常可以采用以下三种主要类型的降温规则:
[0047]
线性减少规则,t=t-a;
[0048]
几何减少规则,t=t*a;以及
[0049]
缓慢下降规则,
[0050]
前述每种降低规则可以按照不同的速率降低温度,并且每种方法都更擅长优化不同类型的模型。对于缓慢下降规则规则,β可以是任意常数。
[0051]
从初始温度开始,循环执行下一步骤n次迭代,然后根据降温规则降低温度。停止此循环,直到达到终止条件。终止条件可能是达到某个最终温度,达到某个给定参数集的可接受的性能阈值等。时间到温度的映射以及温度下降的速度称为退火时间表。
[0052]
给定解邻域n(s),选择其中一个解并且计算旧解与新的邻居解之间的成本差异。解的邻域是所有接近解的解。例如,一组五个参数的邻域可能是要更改五个参数中的一个参数但保持其余四个参数不变。
[0053]
如果新旧解之间的成本差异大于0,这表明新解更好,则接受新解。如果新旧解之间的成本差异小于0,这表明旧解更好,则生成一个介于0和1之间的随机数,如果它低于从之前的能量幅度方程计算出的值,则接受它。
[0054]
在模拟退火的情况中,方程已更改为以下内容:
[0055][0056]
其中δc是成本的变化,并且t是当前温度。
[0057]
在这种情况中计算出的p是我们应该接受新解的概率。
[0058]
因此,基于以上对于模拟退火算法的描述,在计算设备110使用模拟退火算法来调整初始学习率组合120时,可以利用随机增量来调整初始学习率组合120中的静态学习率,并且可以利用随机翻转来调整初始学习率组合120中的动态学习率。
[0059]
根据本公开的实施例,计算设备110可以基于深度学习模型的初始准确率来确定第一阈值准确率。例如,计算设备110可以将第一阈值准确率确定为比深度学习模型的初始准确率高预定值,例如1%,或者可以将第一阈值准确率确定为是深度学习模型的初始准确率的预定倍数,例如1.01倍。在这种情况中,计算设备110有可能通过调整初始学习率组合120而得到多个高于等于第一阈值准确率的目标学习率组合130。
[0060]
根据本公开的实施例,计算设备110可以调整初始学习率组合120和用于对深度学习模型进行训练的参数的值,以得到目标学习率组合130和参数的目标值,其中使用目标学习率组合130和参数的目标值对深度学习模型进行训练所达到准确率高于等于第二阈值准确率。用于对深度学习模型进行训练的参数例如可以包括以下至少一项:用于对深度学习模型进行训练的训练批次大小;用于调整初始学习率组合120的模拟退火算法的迭代次数;
以及用于模拟退火算法的温度下降模式。
[0061]
通过同时调整初始学习率组合120和用于对深度学习模型进行训练的参数的值,可以更有效并且精准地对深度学习模型进行优化。
[0062]
根据本公开的实施例,第二阈值准确率可以高于第一阈值准确率,并且计算设备110同样可以基于深度学习模型的初始准确率来确定第二阈值准确率。
[0063]
根据本公开的实施例,计算设备110可以基于用于参数的预定值集合来调整参数的值。通过利用用于参数的预定值集合,可以减少初始学习率组合120中的参数的取值范围,从而可以使模型优化过程更为高效。
[0064]
图4示出了根据本公开的实施例的模型优化方法400的流程图。方法400可以由图1中所示的计算设备110来实现,也可以由其他适当的设备来实现。应当理解,模型优化方法400还可以包括未示出的附加步骤和/或可以省略所示出的步骤,本公开的实施例的范围在此方面不受限制。
[0065]
在框402,计算设备110确定深度学习模型的初始学习率组合120。根据本公开的实施例,初始学习率组合120包括多个学习率,每个学习率是针对深度学习模型的多个层中的一个层确定的,多个学习率包括静态学习率和动态学习率。框402所涉及的内容与框202所涉及的内容相同,在此不再赘述。
[0066]
在框404,计算设备110使用多维向量格式来表示初始学习率组合120。根据本公开的实施例,将初始学习率组合120表示为多维向量格式可以有助于更高效地使用例如模拟退火算法等算法,因为多维向量格式更适于作为这些算法的输入和输出格式。
[0067]
例如,假定初始学习率组合120包括7个学习率,分别是:值为0.05的静态学习率、值为0.1的静态学习率、值为0.05的静态学习率、值为0.25的静态学习率、值为0.5的静态学习率、作为周期学习率的第一动态学习率以及作为热重启学习率的第二动态学习率。这时,可以利用数字0来表示作为周期学习率的第一动态学习率,并且利用数字1来表示作为热重启学习率的第二动态学习率。通过这种表示形式,前述初始学习率组合120可以被表示为形式为(0.05,0.1,0.05,0.25,0.5,0,1)的多维向量。
[0068]
在框406,计算设备110基于用于确定初始学习率组合120的预定学习率集合来确定多个候选学习率组合。根据本公开的实施例,假设初始学习率组合120包括7个学习率,并且预定学习率集合包括6个预定学习率:值为0.05的静态学习率、值为0.1的静态学习率、值为0.25的静态学习率、值为0.5的静态学习率、作为周期学习率的第一动态学习率以及作为热重启学习率的第二动态学习率。这时,候选学习率组合中的每个学习率都有6个不同的预定学习率选择,因此候选学习率组合至多可以包括67个不同的候选学习率组合。
[0069]
在框408,计算设备110基于多个候选学习率组合被用于训练深度学习模型时所达到的多个准确率来确定第一阈值准确率。
[0070]
根据本公开的一些实施例,计算设备110可以将多个候选学习率组合被用于训练深度学习模型时所达到的多个准确率中的最高准确率确定为第一阈值准确率。
[0071]
根据本公开的另一些实施例,计算设备110可以将多个候选学习率组合被用于训练深度学习模型时所达到的多个准确率中的前若干个最高准确率中最低的准确率确定为第一阈值准确率。
[0072]
根据本公开的又一些实施例,计算设备110可以将多个候选学习率组合被用于训
练深度学习模型时所达到的多个准确率中的前若干个最高准确率的平均值确定为第一阈值准确率。
[0073]
在框410,计算设备110调整初始学习率组合120,以得到目标学习率组合130,其中目标学习率组合130被用于训练深度学习模型时所达到的准确率高于等于第一阈值准确率。框410所涉及的内容与框204所涉及的内容相同,在此不再赘述。
[0074]
需要指出的是,当在框408,计算设备110将多个候选学习率组合被用于训练深度学习模型时所达到的多个准确率中的最高准确率确定为第一阈值准确率时,计算设备110通过调整初始学习率组合120只能得到一个目标学习率组合130,此时目标学习率组合130被用于训练深度学习模型时所达到的准确率等于第一阈值准确率。
[0075]
当在框408,计算设备110将多个候选学习率组合被用于训练深度学习模型时所达到的多个准确率中的前若干个最高准确率中最低的准确率确定为第一阈值准确率时,计算设备110有可能通过调整初始学习率组合120而得到多个高于等于第一阈值准确率的目标学习率组合130。
[0076]
当在框408,计算设备110将多个候选学习率组合被用于训练深度学习模型时所达到的多个准确率中的前若干个最高准确率的平均值确定为第一阈值准确率时,计算设备110同样有可能通过调整初始学习率组合120而得到多个高于等于第一阈值准确率的目标学习率组合130,但此时得到的目标学习率组合130的数目通常会少于将多个候选学习率组合被用于训练深度学习模型时所达到的多个准确率中的前若干个最高准确率中最低的准确率确定为第一阈值准确率时所得到的目标学习率组合130的数目。
[0077]
根据本公开的实施例,当计算设备110同时调整初始学习率组合120和用于对深度学习模型进行训练的参数的值时,计算设备110可以首先基于用于确定初始学习率组合120的预定学习率集合来确定多个候选学习率组合,并且基于用于确定参数的值的参数的预定值集合来确定参数的多个候选值;而后,计算设备110可以通过组合多个候选学习率组合中的每个候选学习率组合与多个候选值中的每个候选值而形成多个组合;最后,计算设备110基于多个组合被用于训练深度学习模型时所达到的多个准确率来确定第二阈值准确率。
[0078]
这时,计算设备100同样可以将多个准确率中的最高准确率确定为第一阈值准确率,将多个准确率中的前若干个最高准确率中最低的准确率确定为第一阈值准确率,或者将多个准确率中的前若干个最高准确率的平均值确定为第一阈值准确率。
[0079]
在框412,计算设备110使用多维向量格式来表示目标学习率组合130。框410所涉及的内容与框404所涉及的内容相似,在此不再赘述。
[0080]
应当理解,方法400包括比方法200更多的步骤,并且可以被认为是对方法200的扩展。
[0081]
以上参考图1至图4描述了根据本公开的实施例的设备和/或方法可以在其中被实施的模型优化环境100、根据本公开的实施例的模型优化方法200以及根据本公开的实施例的模型优化方法400的相关内容。应当理解,上述描述是为了更好地展示本公开的实施例中所记载的内容,而不是以任何方式进行限制。
[0082]
应当理解,本公开的实施例以及各个附图中所采用的各种元件的数目和物理量的大小仅为举例,而并不是对本公开的实施例的保护范围的限制。上述数目和大小可以根据需要而被任意设置,而不会对本公开的实施例的正常实施产生影响。
[0083]
通过以上参考图1到图4的描述,根据本公开的实施例的技术方案,提出了一种模型优化方法。利用本公开的实施例中所提出的模型优化方法,可以通过针对深度学习模型的每个层设置包括静态学习率和动态学习率的学习率来优化深度学习模型,从而可以提高深度学习模型的性能和训练效果,进而有助于提高使用深度学习模型的用户的用户体验。
[0084]
以下使用人脸识别人工智能任务作为示例来逐步说明根据本公开的实施例的技术方案。
[0085]
首先,使用例如imagenet的大型数据集和例如专用处理单元的计算资源以及存储资源来对作为人脸识别模型的深度学习模型进行预训练。
[0086]
为了对人脸识别模型进行预训练,选择了4gb大小的casia-web-face数据集,这是可用于人脸验证和识别问题的第二大公共数据集,其中包括494000张图像和10500人的三维面部数据。
[0087]
在例如通过服务器上的4个专用处理单元,使用casia-web-face对inception-resnet-v2进行训练以对10500人进行分类。预训练模型是一个215mb的文件,其包括55873736个模型参数和572个层。
[0088]
而后,可以针对人脸识别任务收集一个较小的数据集。为此,可以使用标记人脸(lfw)人脸数据集作为较小的数据集,其中包括从网络收集的5749个人的13233张图像。我们从数据集lfw拆分出一个验证集(lfw
val
)和训练集(lfw
train
)。
[0089]
在这一示例中,从lfw中选择158张图像超过10个的人作为总数据集,并且针对每个人从总数据集随机采样4张图像以构建验证集lfw
val
,验证集lfw
val
包括具有共计632张图像的158个人,训练集lfw
train
则包括具有共计3692张图像的158个人
[0090]
经过训练和验证,预训练模型的准确率为97.4%。
[0091]
接着,确定混合层特定的学习率策略,其中解编码为n维向量。
[0092]
对于每一层,学习率策略可以是固定的静态学习率:0.005、0.01、0.05、0.1或微调期间的动态学习率策略:循环学习率策略(0),热重启(1)。
[0093]
因此学习率策略编码的示例为(0.1,0.5,0.25,0.1,0.05,0,0,1,1,1)。
[0094]
最后,可以选择几个不同的批次大小值,对于每个批次大小值,使用模拟退火来搜索特定于层的学习率策略的最佳组合。每个编码解的目标函数计算需要在训练集lfw
train
上微调深度学习模型,然后在验证集lfw
val
上验证经微调的深度学习模型,验证结果就是目标函数值。
[0095]
在将用于对深度学习模型进行训练的训练批次大小设置为16,将用于调整初始学习率组合120的模拟退火算法的迭代次数设置为100并且将用于模拟退火算法的温度下降模式设置为从100度到1度的线性降低时,采取混合层特定的学习率策略所能够实现的准确率为99.1%,高于仅采用固定的静态学习率所能达到的98.5%的准确率,并且高于预训练模型本身的初始准确率97.4%。由此可见,利用本公开的实施例中的技术方案,可以对预训练模型进行有效的优化。
[0096]
图5图示出了可以用来实施本公开的实施例的示例设备500的示意性框图。根据本公开的实施例,图1中的计算设备110可以由设备500来实施。如图所示,设备500包括中央处理单元(cpu)501,其可以根据存储在只读存储器(rom)502中的计算机程序指令或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序指令,来执行各种适当的动作和
处理。在ram 503中,还可以存储设备500操作所需的各种程序和数据。cpu 501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
[0097]
设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0098]
上文所描述的例如方法200和400的各个过程和处理可由处理单元501执行。例如,在一些实施例中,方法200和400可以被实现为计算机软件程序,其被有形地包含于例如存储单元508的机器可读介质中。在一些实施例中,计算机程序的部分或者全部可以经由rom502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序被加载到ram 503并由cpu 501执行时,可以执行上文描述的方法200和400的一个或多个动作。
[0099]
本公开的实施例可以涉及方法、设备、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的实施例的各个方面的计算机可读程序指令。
[0100]
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是、但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的作为非穷举的列表的更具体的示例包括:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、例如通过光纤电缆的光脉冲的通过波导或其他传输媒介传播的电磁波、或者通过电线传输的电信号。
[0101]
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0102]
用于执行本公开的实施例的操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以例如利用因特网服务提供方来通过因特网连接连接到外部计算机。在一些实施例中,通过利用计算机可读程
序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的实施例的各个方面。
[0103]
这里参照根据本公开的实施例的方法、设备/系统和计算机程序产品的流程图和/或框图描述了本公开的实施例的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0104]
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0105]
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0106]
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0107]
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1