一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

抵消模拟加速器的漂移系数中的变化的漂移正则化的制作方法

2023-02-06 11:06:18 来源:中国专利 TAG:

抵消模拟加速器的漂移系数中的变化的漂移正则化


背景技术:

1.本公开的实施例涉及模拟人工神经网络,并且更具体地涉及抵消漂移系数中的变化的漂移正则化。


技术实现要素:

2.根据本公开的实施例,提供了训练人工神经网络的方法和用于训练人工神经网络的计算机程序产品。在各个实施例中,示出了训练人工神经网络的方法。随机初始化多个权重。该多个权重中的每个权重对应于人工神经网络的突触。至少一个输入阵列被输入到人工神经网络。通过人工神经网络基于至少一个输入阵列和多个权重来确定至少一个输出阵列。将至少一个输出阵列与真值数据进行比较以确定第一损失。通过将漂移正则化添加到第一损失来确定第二损失。漂移正则化与至少一个输出阵列的方差正相关。通过反向传播基于第二损失来更新多个权重。
附图说明
3.现在将参考附图仅通过示例的方式来描述本发明的实施例,其中:
4.图1示出了根据本公开的实施例的dnn的示例性计算图。
5.图2示出了根据本公开的实施例的dnn的示例性硬件实现。
6.图3a-图3b示出了根据本公开的实施例的示例性交叉阵列。
7.图4是根据本公开的实施例的漂移系数的示例性直方图。
8.图5a-图b示出了根据本公开的实施例的衰减电导值作为时间的函数的分布。
9.图6示出了根据本公开的实施例的示例性两层人工神经网络。
10.图7a-图7d示出了根据本公开的实施例的示例性网络的随时间的准确度。
11.图8a-图8d提供了示出根据本公开的实施例的具有各种漂移正则化参数的分类准确度/复杂度(perplexity)的热图。
12.图9a-图9d提供了根据本公开的实施例的正确答案概率的标准差的累积分布的图。
13.图10a-图10c提供了示出根据本公开的实施例的具有各种漂移正则化参数的分类准确度/复杂度的附加热图。
14.图11a-图11c提供了根据本公开的实施例的准确度随时间的图。
15.图12示出了根据本公开的实施例的训练人工神经网络的方法。
16.图13描绘了根据本公开的实施例的计算节点。
具体实施方式
17.深度神经网络(dnn)的若干应用要求这些模型运行在资源受限的平台上,诸如移动电话和具有低能量预算的边缘设备。这可能具有挑战性,因为具有现有技术分类准确度的dnn模型具有高计算和存储器要求,其中每个推理(inference)传递(pass)通常需要数百
万数量级的乘法累加运算。为了解决这个问题,可以使用数字加速器,其在cpu和gpu上提供速度和能量效率的显著改进。数字加速器可以基于冯诺伊曼(von neumann)架构,其中,数据被存储在单独的片外存储器(通常是dram)中并且在片上传输以便执行计算。此类设计的缺点是与数据移动相关联的能量经常最终成为主导因素,从而限制了可以实现的能量效率。
18.具有存储器内计算的模拟计算提供了dnn的硬件加速的替代方案。模拟加速器利用交叉阵列结构来存储数据并且使用电阻式存储器器件在模拟域中执行计算。加速器可以基于相变存储器(pcm)、忆阻器或电阻ram(rram)。与数字设计相比,在存储器中执行计算的能力显著地减少了数据移动并且允许模拟加速器实现数量级的更好的能量效率。
19.pcm器件提供了若干优点,诸如成熟的过程技术、高耐久性和导致较大数量的中间电导状态的大电阻对比度。当将dnn权重编码为电导值时,一对或多对pcm器件可被用于表示每个权重。这提供了对正权重和负权重两者的覆盖,提高了电导动态范围,并且减少了器件噪声的影响。pcm器件中的中间电导状态是通过调制硫属化物材料的非晶相和结晶相之间的体积比来实现的。dnn推理可用根据从pcm器件的阵列编程和测量的模拟电导值计算的权重来执行。在一些实现方式中,dnn推理中的所有计算都在模拟域中的交叉阵列内或交叉阵列的边缘处执行,而无需将权重移动到单独的计算单元或将激活转换成数字位表示。
20.如上所述,由于存储器内计算提供的能量效率,基于相变存储器(pcm)的模拟ai加速器对于边缘应用中的推理是有用的。不幸的是,pcm器件固有的噪声源可引起深度神经网络(dnn)权重值的不准确性,这导致模型的分类准确度的降级。具体地,pcm器件展现出称为电导漂移的现象,由此pcm器件的电导在一段时间内遵循幂定律逐渐衰减。这种现象与pcm材料的非晶相的持续弛豫(relaxation)相关联。本公开提供了用于使训练算法具有噪声感知能力的方法,从而使网络能够被训练得可以保持高分类准确度,尽管由于电导漂移而破坏了权重值。
21.现在参考图1,提供了用于深度人工神经网络(dnn)的示例性计算图。
22.人工神经网络(ann)是分布式计算系统,其包括通过被称为突触的连接点互连的多个神经元。每个突触编码一个神经元的输出与另一神经元的输入之间的连接的强度。每个神经元的输出是由从连接到它的其他神经元接收到的聚集输入来确定的。因此,给定神经元的输出基于来自先前层的连接神经元的输出以及由突触权重确定的连接的强度。ann被训练以通过调整突触的权重使得特定类别的输入产生期望的输出来解决特定问题(例如,模式识别)。
23.各种算法可以用于该学习过程。某些算法可适合于特定任务,诸如图像识别、语音识别或语言处理。训练算法导致在学习过程期间朝着给定问题的最优解收敛的突触权重模式。反向传播是用于监督学习的一种合适的算法,其中已知的正确输出在学习过程期间是可获得的。这种学习的目标是获得一种归纳出在训练期间不可获得的数据的系统。
24.通常,在反向传播期间,网络的输出与已知的正确输出进行比较。针对输出层中的每个神经元计算误差值。从输出层开始,向后传播误差值以确定与每个神经元相关联的误差值。误差值对应于每个神经元对网络输出的贡献。然后使用误差值来更新权重。通过以此方式的增量校正,调整网络输出以符合训练数据。
25.将了解,各种误差度量在本领域中是已知的,例如,交叉熵损失或欧几里得距离的
平方。同样将理解的是,各种正则化方法在本领域中是已知的,包括l1(lasso回归)或l2(岭回归)。
26.当应用反向传播时,ann在训练集中的大多数实例上快速获得高准确度。训练时间的绝大部分花费在尝试进一步增加该测试准确度。在此时间期间,大量的训练数据实例导致很少的校正,因为系统已经学习到识别这些实例。通常,虽然ann性能倾向于随着数据集的大小而提高,但是这可以通过如下事实来解释:更大的数据集包含ann在其上被训练的不同类别之间的更多边界线示例。
27.参考图2,提供了dnn的示例性硬件实现。在该示例中,当在基于pcm的模拟加速器上编码为电导(g)时,电导噪声导致权重值的误差。
28.由于电导噪声引起的权重值的修改可导致模型的分类准确度的严重降级。例如,在存在电导噪声的情况下,在cifar-10数据集上训练的3层卷积神经网络的准确度在一个月内下降了15.6%。由于漂移噪声的影响,准确度的降级继续增加,这导致权重值的误差随时间增加。如果未解决的话,分类准确度的这种降级对采用基于pcm的模拟加速器作为数字加速器的替代造成了主要障碍。
29.准确度的这种降级的原因可归因于在dnn的训练期间作出的假设。常规dnn训练假设在推理期间使用的dnn权重是确定性的并且是原始经训练的模型中的权重的相同副本。限制量化噪声,该假设对于使用数字硬件的推理通常是有效的。相反,当经训练的模型部署在模拟推理硬件上时,由于电导噪声,权重表现为随机变量。因为权重不再是原始权重的真实副本,所以我们不能确定经修改的网络将保持从训练算法获得的原始模型的高分类准确度。
30.由于噪声的准确度损失可归因于在存在噪声的情况下输出神经元的相对强度的改变。本公开示出,通过在训练期间减小这些神经元值的方差,可以保留神经元的相对强度,由此减小分类准确度的降级。为此,提供漂移正则化函数来减小神经元值的方差并提高dnn的噪声鲁棒性。
31.参考图3,示出了根据本公开的实施例的示例性交叉阵列。dnn的权重w
ij
被编码为电导率g
-g-,并且输入x被编码为电压或电压脉冲。在图3a中,通过使用欧姆定律i=gv执行乘法xiw
ij
,产生表示乘积的电流i。在图3b中,乘积项的累积∑nxiw
ij
通过使用基尔霍夫电流定律将电流沿着列相加来完成。
32.dnn由层的序列组成,每个层包含一组神经元。评估层中的每个神经元的值涉及取一组输入神经元{xi}和与该层相关联的权重{w
ij
}之间的内积并应用非线性函数f来计算输出神经元{yj},如下所示。应当理解,在各种网络配置中采用各种函数f,包括relu。
[0033][0034][0035]
使用如图3a所示的电阻元件的交叉结构来构建用于dnn推理的模拟加速器。从经训练的dnn模型获得的权重值(w)可被编码为模拟非易失性存储器器件(也被称为忆阻器件)的电导值(g)。为了将权重值转换成电导率,转换因子通过取层中最大权重的大小(w
max
)与最大电导率值g
max
的比率来定义,然后使用该比率来将权重值转换成电导率,如下所示。
[0036][0037]
因为权重可以取正值和负值两者,所以权重被编码为一对器件的电导值(g

和g-)之间的差。输入神经元xi被编码为电压并沿交叉的行施加。通过欧姆定律的原理,第i行中的器件产生与如图3a所示的xi和w
ij
项的积成比例的电流。乘积项的累积是通过使用基尔霍夫电流定律来沿列添加电流来执行的。结果被存储在阵列的底部并且可被发送以用于dnn中的下一层的下游处理。
[0038]
与具有用于计算和存储器的单独单元的基于cmos的数字加速器相比,模拟加速器通过执行存储器中的计算来减少数据移动量。与数字加速器相比,这导致显著更高的能量效率(g-ops/瓦特)。此外,多个交叉结构可以被互连来以流水线方式处理dnn的所有层,从而提供速度和吞吐量方面的优势。可以使用像reram、mram和闪存的若干忆阻器件来构造交叉结构。
[0039]
相变存储器(pcm)器件主要由具有加热元素的硫属化物玻璃材料构成。通过施加通过电脉冲产生的热量,材料的相可以在结晶状态与非晶状态之间改变。取决于材料的相,材料的电导显著改变,并且这可被用来编码dnn的权重值。
[0040]
如上所述,pcm器件遭受电导漂移的现象,由此器件的电导值遵循幂定律随时间衰减。电导的衰减表征如下。
[0041][0042]
这里,g0表示在时间t0取得的电导值的初始测量,并且g
t
(t)表示在时间t处的电导的值。从器件的编程完成的时刻测量时间。ν是称为漂移系数的器件特定参数,其描述了电导值值随时间衰减的指数速率。
[0043]
参考图4,提供了漂移系数的示例性直方图。在施加多个编程脉冲到一组20000个pcm器件之后,通过测量器件电导随时间的衰减速率来确定漂移系数v的分布。在多个试验、多个器件以及各种编程的电导值上平均实验测量的分布。为了简化说明,假设平均值为0.031和标准差为0.007的同一正态分布适用于所有电导状态下的pcm器件。由于v是正态分布的并且如上所示以指数出现,g
t
(t)遵循对数正态分布。应当理解,以上的平均值和标准差是示例性的,并且不限制本文所描述的技术。
[0044]
参考图5a,提供了衰减电导值作为时间的函数的分布的图。虚线表示g
t
(t)的平均值。由于漂移,电导(g)随时间(t)衰减,并且遵循上述对数正态分布。图5b示出了通过与合适的比例因子相乘来校正的分布的平均值。
[0045]
通过使用合适的比例因子放大与权重相关联的乘积项,可以校正该分布的平均值并且以原始电导g0为中心。虽然这个缩放因子随着时间与平均漂移一起改变,但是对于在给定时间点的任何推理操作,它是标量常数。这将g
t
(t)的对数正态分布改变为具有g0的平均值,如图5b所示。然而,由于仍然存在与电导(权重)值相关联的分布,所以可以预期由于
电导与原始值g0的偏差而导致的准确度降级。
[0046]
通过减小神经元值的方差,保留了神经元的相对强度。为此,在损失函数中包括漂移正则化项以减小神经元值的方差,并且以此方式提高了dnn的噪声鲁棒性。
[0047]
如上所示,漂移导致权重/电导值随时间衰减。虽然可以通过与适当的校正因子相乘来校正该衰减的平均值,但是权重值随时间的增加的变化导致准确度降级。由于漂移噪声引起的dnn的分类准确度的降级可归因于导致不正确预测的输出神经元的相对强度的改变。例如,考虑针对二分类任务训练的dnn。令x是在没有噪声的情况下被正确地分类为a类的输入。这意味着与a类(ya)相关联的输出神经元具有比与b类(yb)相关联的输出神经元更高的值,即ya》yb。然而,在有电导噪声的情况下,如果对具有噪声权重值的输入的评估导致ya<yb,则输出可变成b类,从而导致dnn将该输入错误分类为b类。以此方式,权重值中的噪声可改变输出神经元的相对强度,从而导致dnn的分类准确度的降级。此类重排序的可能性可通过在存在电导噪声的情况下减小神经元的值的变化来减小。在各个实施例中,这通过添加新的正则化项来修改在dnn的训练期间使用的损失函数来实现。
[0048]
参考图6,示出了具有原始和漂移修改的神经元的值和权重两者的示例性两层神经网络。下面给出了没有噪声的输出神经元的值。
[0049][0050]
在漂移噪声的影响下,网络的原始权重wi修改为w
t
,如下所示。
[0051][0052]
下面给出了在存在漂移噪声的情况下神经元的值的表达式。
[0053][0054]
以上是根据原始乘积项pi的神经元的漂移修改的值的简化表达式。可针对漂移修改的神经元值的标准差导出表达式如下。
[0055][0056]
σ
y’的表达式可以通过使用如上所示的一阶近似消除非线性度f来简化。要注意的是,该简化由di项的加权组合构成。因为所有di项都是相同分布的随机变量,所以该表达式可以简化如下。
[0057][0058]
y’的stddev(标准差)的表达式具有两个项:σd和||pi||2,如上所述。因此,y’的stddev可以通过减小任一个项或两个项来减小。要注意的是,第一项σd由pcm器件的特性确定,并且改进该特性将涉及修改pcm器件。相反,第二项||pi||2是网络参数的函数并且完全独立于器件特性。因此,通过操纵网络参数,||pi||2可以减小,相应地减小神经元的stddev的值σ
y’。为此,提供了正则化函数。对于dnn中的每个神经元yj,正则化项rj被定义如下。
[0059]rj
=||pi||2[0060]
等式9
[0061]
因此,为了鼓励dnn中的神经元在电导噪声下具有更小的方差,可以使用如下所示的附加漂移正则化项来修改损失函数。将最小化此正则化项转换成通过在存在电导噪声的情况下保留神经元的相对强度来提高噪声鲁棒性。
[0062][0063]
λ控制给予上述正则化函数的重要性的量。λ被视为超参数,并且执行扫描以确定利用电导噪声提供最小准确度降级的值。下文呈现了来自该超参数扫描的详细结果。
[0064]
应当理解,尽管本文中关于两层网络讨论了各种实例,但是本公开可适用于任何尺寸的多层网络。在具有多层网络的一些实施例中,根据上述讨论考虑了输出层的输出值(y)。在其他实施例中,每个层的输出被视为y,在此情况下,在乘以超参数λ之前,将来自所有层的r2项相加。
[0065]
参考图7a-图7e,在各个示例性实施例中提供了随时间变化的准确度的图。在这些
图中,实线表示无噪声——没有电导噪声的假想网络。虚线表示经受电导漂移的基线网络。点线表示利用漂移正则化(具有λ的最佳值)训练的网络。漂移正则化导致与基线网络相比分类准确度/复杂度的更小的降级。
[0066]
如所示出的,与基线情况的15.6%的降级相比,当用漂移正则化训练时,在cifar-10上训练的conv3网络的分类准确度在1月内降级了11.3%。这些结果示出通过漂移正则化来减小神经元的方差可以帮助减小由于电导噪声引起的dnn的分类准确度的降级。
[0067]
参考图8a-图8e,提供了示出对于用漂移正则化参数λ的不同值训练的网络的分类准确度/复杂度对时间的热图。增加λ值改善了时间t=1个月时的性能。然而,使λ太大会损害性能。
[0068]
漂移正则化通过使用正则化项在电导漂移下减小神经元值的方差来提高噪声鲁棒性。λ是在训练期间控制正则化项的相对重要性的超参数。在该示例中,利用漂移正则化参数λ的不同值来训练模型。图8中的热图示出了在作为x轴上的时间的函数的电导噪声下的网络的准确度/复杂度。底行表示λ=0的基线情况。该图示出了用y轴上的增加的λ值训练的网络的准确度。与基线情况相比,用更高的λ值训练的网络在时间t=1月处示出了更好的准确度/复杂度,示出漂移正则化提高了网络对电导噪声的鲁棒性。如果λ的值太高,则dnn的性能降级,如可由热图中的最高行观察到的。
[0069]
图9a-图9d示出了正确答案概率的标准差的累积分布的图。漂移正则化减小了神经元的标准差(σ),提高了dnn的噪声鲁棒性。
[0070]
漂移正则化减小了电导噪声下神经元值的标准差。为了评估漂移正则化对神经元的标准差的影响,考虑了dnn的两个版本,一个用漂移正则化来训练而另一个不用漂移正则化来训练。在两个网络之间比较正确类别的输出概率的标准差,针对每个测试输入使用多个噪声样本来测量该标准差。例如,考虑被标记为类别a的测试输入x。具有输入x的类别a的输出概率的分布跨通过采样噪声获得的网络的多个版本来生成。可以使用该分布来评估输出概率的标准差。
[0071]
可以针对数据集中的所有测试输入来计算输出概率的标准差以生成所考虑的两个网络的标准差的累积分布。图9a-图9d中示出了比较具有和不具有漂移正则化的网络的正确输出概率的cdf的结果。如图所示,与所考虑的3个网络上的基线网络相比,漂移正则化的网络往往具有更低的输出概率的标准差。因此,漂移正则化降低了神经元的标准差,并且以此方式实现了更好的噪声弹性。
[0072]
参考图10a-图10c,提供了示出利用漂移正则化参数λ的不同值训练的网络的分类准确度/复杂度vs.时间的附加热图。在图11a-图11c中,针对相同的三个网络提供了准确度随时间变化的对应图。
[0073]
参考图12,示出了训练人工神经网络的方法。在1201处,随机初始化多个权重。该多个权重中的每个权重对应于人工神经网络的突触。在1202处,至少一个输入阵列被输入到人工神经网络。在1203处,由人工神经网络基于至少一个输入阵列和多个权重来确定至少一个输出阵列。在1204处,将至少一个输出阵列与真值数据进行比较以确定第一损失。在1205处,通过将漂移正则化添加到第一损失来确定第二损失。漂移正则化与至少一个输出阵列的方差正相关。在1206处,通过反向传播基于第二损失来更新多个权重。
[0074]
现在参见图13,示出了计算节点的示例的示意图。计算节点10仅是合适的计算节
点的示例,并且不旨在对本文所述的实施例的使用或功能的范围提出任何限制。无论如何,计算节点10能够被实现和/或执行上文阐述的任何功能。
[0075]
在计算节点10中,存在计算机系统/服务器12,其可与许多其他通用或专用计算系统环境或配置一起操作。可以适用于计算机系统/服务器12的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、薄客户端、厚客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络pc、小型计算机系统、大型计算机系统和包括上述任何系统或设备的分布式云计算环境等。
[0076]
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般上下文中描述。一般而言,程序模块可包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。计算机系统/服务器12可以在分布式云计算环境中实践,其中任务由通过通信网络链接的远程处理设备执行。在分布式云计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机系统存储介质中。
[0077]
如图13所示,计算节点10中的计算机系统/服务器12以通用计算设备的形式示出。计算机系统/服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28和将包括系统存储器28的各种系统组件耦合到处理器16的总线18。
[0078]
总线18表示若干类型的总线结构中的任何的一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口以及使用各种总线架构中的任一种的处理器或局部总线。作为示例而非限制,此类架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线、外围组件互连(pci)总线、高速外围组件互连(pcie)和高级微控制器总线架构(amba)。
[0079]
计算机系统/服务器12通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统/服务器12访问的任何可用介质,并且其包括易失性和非易失性介质、可移动和不可移动介质。
[0080]
系统存储器28可包括以易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(ram)30和/或高速缓冲存储器32。计算机系统/服务器12还可以包括其他可移动/不可移动、易失性/非易失性计算机系统存储介质。仅通过示例的方式,存储系统34可以被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)中读取和向其写入。尽管未示出,可以提供用于从可移动非易失性磁盘(例如,“软盘”)读取或向其写入的磁盘驱动器,以及用于从可移动非易失性光盘(诸如cd-rom、dvd-rom或其他光学介质)读取或向其写入的光盘驱动器。在这样的情况下,每一个可以通过一个或多个数据介质接口连接到总线18。如以下将进一步描绘和描述的,存储器28可以包括具有被配置为执行本公开的实施例的功能的一组(例如,至少一个)程序模块的至少一个程序产品。
[0081]
具有一组(至少一个)程序模块42的程序/实用程序40,以及操作系统、一个或多个应用程序、其他程序模块和程序数据,通过示例而非限制,可以存储在存储器28中。操作系统、一个或多个应用程序、其他程序模块和程序数据中的每一个或它们的一些组合可以包括网络环境的实现方式。程序模块42通常执行如本文所描述的实施例的功能和/或方法。
[0082]
计算机系统/服务器12也可以与一个或多个外部设备14(诸如键盘、定点设备、显示器24等)通信;使得用户能够与计算机系统/服务器12交互的一个或多个设备;和/或使得
计算机系统/服务器12能够与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可经由输入/输出(i/o)接口22发生。此外,计算机系统/服务器12可以经由网络适配器20与一个或多个网络通信,诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如因特网)。如图所示,网络适配器20经由总线18与计算机系统/服务器12的其他组件通信。应当理解,虽然未示出,但是其他硬件和/或软件组件可以与计算机系统/服务器12结合使用。示例包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器和数据归档存储系统等。
[0083]
本公开可以体现为系统、方法和/或计算机程序产品。该计算机程序产品可包含其上具有用于使处理器执行本公开的方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
[0084]
计算机可读存储介质可以是可保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线传输的电信号。
[0085]
本文中所描述的计算机可读程序指令可以经由网络(例如,因特网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0086]
用于执行本公开的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smaltalk、c 等)和常规的过程式程序设计语言(诸如“c”程序设计语言或类似的程序设计语言)。计算机可读程序指令可以完全地在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行或者完全在远程计算机或服务器上执行。在后一种场景下,远程计算机可通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本公开的各方面。
[0087]
本文参考根据本公开的实施例的方法、装置(系统)和计算机程序产品的流程图图
示和/或框图来描述本公开的各方面。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合,都可以由计算机可读程序指令实现。
[0088]
这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的部件。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令指导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其上存储有指令的计算机可读存储介质包括包含实现流程图和/或框图的一个或多个框中指定的功能/动作的方面的指令的制造品。
[0089]
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置或其他设备上,使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
[0090]
附图中的流程图和框图示出了根据本公开的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中标注的功能可以不按照图中标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个块实际上可以基本上同时执行,或者这些块有时可以以相反的顺序执行。还要注意的是,框图和/或流程图中的每个框以及框图和/或流程图中的框的组合,可以用执行规定的功能或动作或执行专用硬件与计算机指令的组合的专用的基于硬件的系统来实现。
[0091]
已经出于说明的目的呈现了本公开的不同实施例的描述,但并不旨在是详尽的或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域普通技术人员将是显而易见的。本文使用的术语被选择来最好地解释实施例的原理、实际应用或对在市场中找到的技术的技术改进,或者使得本领域普通技术人员能够理解本文公开的实施例。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献