掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、存储介质及电子设备

文献发布时间:2024-01-17 01:23:59


数据处理方法、存储介质及电子设备

技术领域

本发明涉及神经网络技术领域,尤其涉及一种数据处理方法、存储介质及电子设备。

背景技术

随着人工智能(Artificial Intelligence,AI)技术的快速发展,神经网络(例如,深度神经网络)近年来广泛应用于在计算机视觉、语音、自然语言、强化学习等领域。但是随着神经网络算法的发展,算法的复杂度越来越高,模型结构越来越复杂,相应地,部署有神经网络模型的设备的运算资源和内存需求也会越大。因此,在神经网络模型被部署于运算资源、存储资源有限的电子设备(手机等嵌入式电子设备)中时,一般需要通过对神经网络模型进行量化,以使得模型内存变小,数据处理速度变快。其中,对神经网络模型进行量化,通常为将神经网络模型中的高精度数量级的数据量化为低精度数量级的数据,量化过程中可能存在噪声信号,影响量化精度。

发明内容

本发明实施例提供了一种数据处理方法、存储介质及电子设备。

第一方面,本发明提供了一种数据处理方法,应用于电子设备,电子设备上运行有神经网络模型;该方法包括:获取神经网络模型中第一运算层的第一输出数据;对第一输出数据进行降噪处理,得到第二输出数据;基于第二输出数据的浮点数量化区间,确定第一运算层的目标量化系数;基于目标量化系数对第一运算层中的运算数据进行量化处理。

在本发明实施例中,将多组待处理数据输入至神经网络模型后,获取神经网络模型中各运算层对应多组待处数据的浮点输出数据后,对各组浮点输出数据进行降噪处理,并基于降噪后的各组浮点输出数据确定对应运算层的量化因子,例如,浮点数最大值和浮点数最小值,通过该量化因子确定对应运算层的量化系数。如此,后续神经网络模型在对应运算层进行运算时,可以直接基于该运算层的量化系数将浮点数转化为定点数进行运算。可以理解,由于神经网络模型中每层运算层的量化系数是通过降噪数据确定的,可以降低噪声信号导致的量化系数误差,确保量化系数的准确性,减少量化过程中浮点数转定点数的精度损失,提高运算精度。且神经网络模型通过数量级较小的定点数进行运算,可以提高神经网络模型的运算效率。

在上述第一方面的一种可能的实现中,上述降噪处理包括:对第一输出数据进行特征分解,得到多个第一特征值,其中,第一特征值用于表示第一输出数据的数据特征;滤除小于预设特征阈值的部分第一特征值,基于大于和等于特征阈值的部分第一特征值进行特征恢复,得到第二输出数据,其中,第二输出数据的数据特征与第一输出数据的数据特征的匹配度满足预设匹配条件。

在上述第一方面的一种可能的实现中,上述降噪处理包括以下至少一种处理方法:奇异值分解处理方法、离散余弦变换处理方法和小波分解处理方法。

在上述第一方面的一种可能的实现中,第一输出数据包括多个第一数据集合;上述方法还包括:对各个第一数据集合进行降噪处理,得到对应各个第一数据集合的第二数据集合;分别确定各个第二数据集合的第一量化因子和第二量化因子,其中,第一量化因子为对应的第二数据集合的浮点数最大值,第二量化因子为对应的第二数据集合的浮点数最小值;基于预设的匹配策略从多个第一量化因子中确定出第一目标量化因子,以及从多个第二量化因子中确定出第二目标量化因子;基于第一目标量化因子和第二目标量化因子,确定第二输出数据的浮点数量化区间。

在上述第一方面的一种可能的实现中,上述对各个第一数据集合进行降噪处理,得到对应各个第一数据集合的第二数据集合,包括:对第一数据集合进行特征分解,得到第一特征矩阵,其中,第一特征矩阵中包括多个第一特征值,第一特征矩阵中的第一特征值用于表示对应的第一数据集合的数据特征;滤除第一特征矩阵中小于预设特征阈值的部分第一特征值,得到第二特征矩阵,其中,第二特征矩阵包括多个大于和等于特征阈值的第一特征值;基于第二特征矩阵进行特征恢复,得到对应第一数据集合的第二数据集合,其中,第一数据集合的数据特征与第二数据集合的数据特征的匹配度满足预设匹配条件。

在上述第一方面的一种可能的实现中,上述分别确定各个第二数据集合的第一量化因子和第二量化因子,包括:对第二数据集合的浮点数最大值和浮点数最小值进行校准处理,将校准处理后浮点数最大值和浮点数最小值,作为对应第二数据集合的第一量化因子和第二量化因子。

在上述第一方面的一种可能的实现中,上述校准处理包括:基于第二数据集合的浮点数最大值和浮点数最小值,确定对应第二数据集合的第一量化系数;基于预设的量化系数区间确定对应第一量化系数的多个第二量化系数,其中,多个第二量化系数中一部分第二量化系数大于第一量化系数,另一部分第二量化系数小于第一量化系数;基于各个第二量化系数分别对第一数据集合进行量化处理后再进行反量化处理,得到多个第三数据集合;分别对多个第三数据集合进行特征分解,得到多个第三特征矩阵;从多个第三特征矩阵中获取与第一特征矩阵最相似的一个第三特征矩阵,并获取最相似的第三特征矩阵对应的第二量化系数,将该第二量化系数作为第三量化系数;基于第三量化系数确定对应第二数据集合的浮点数最大值和浮点数最小值,以作为第一量化因子和第二量化因子。

在上述第一方面的一种可能的实现中,上述匹配策略包括以下至少一种策略:平均数策略、加权平均数策略、众数策略。

第二方面,本发明实施例提供了一种可读存储介质,该可读存储介质上存储有指令,该指令在电子设备上执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据处理方法。

第三方面,本发明实施例提供了一种电子设备,该电子设备包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令;以及处理器,是电子设备的处理器之一,用于执行存储器中存储的指令以实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据处理方法。

第四方面,本发明实施例提供了一种程序产品,该程序产品中包括指令,在该指令被电子设备执行时可以使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任意一种数据处理方法。

附图说明

图1根据本发明的一些实施例,示出了一种对浮点数进行8位量化的示意图;

图2A根据本发明的一些实施例,示出了一种降噪处理方法的流程示意图;

图2B根据本发明的一些实施例,示出了一种校准处理方法的流程示意图;

图3根据本发明的一些实施例,示出了一种数据处理方法的流程示意图;

图4根据本发明的一些实施例,示出了一种电子设备的示意图;

图5根据本发明的一些实施例,示出了一种片上系统的示意图。

具体实施方式

本发明的说明性实施例包括但不限于一种数据处理方法、存储介质及电子设备。

下面结合附图1至5对本发明的技术方案进行介绍。

在一些实施例中,神经网络模型部署于电子设备后,电子设备通过神经网络模型可以实现图像处理、视频处理、音频处理和文本处理等功能。在神经网络模型被部署于运算资源、存储资源有限的电子设备中时,一般需要通过对神经网络模型进行量化,以使得模型内存变小,数据处理速度变快。例如,神经网络模型每层数据可以用32位浮点数表示,量化则是通过较少位定点数来表示,例如将32位浮点数转换为4/8/16位定点数,即数据量化。可以理解,数据反量化,则是将较少位数的定点数通过较多位数的浮点数表示,例如将4/8/16位定点数转换为32位浮点数。

在一些实施例中,神经网络模型可以通过数据量化实现对图片文件的压缩存储,而通过数据反量化实现对压缩图片文件的读取等,具体不做限制。可以理解,定点数的数量级小于浮点数的数量级,通过定点数进行存储和运算,可以提高电子设备存储空间的利用率和数据处理的速度。

为了更加清楚的理解本申请,以下对数据量化(浮点数转换为定点数)和数据反量化(定点数转换为浮点数)进行解释说明。

在一些实施例中,数据量化可以理解为将浮点数对应的取值范围的数据映射至定点数对应的取值范围。例如公式(1)所示:

Q(X|b)=clip(X*S-Zp,Q

在公式(1)中,X表示浮点数集合,b表示量化位宽,Q(X|b)表示将浮点数集合X转换为位宽b的定点数集合Q,clip()表示裁剪函数,S表示浮点数集合X的量化系数(即缩放系数),Zp表示浮点数集合X的量化零点(即偏移值/零点值),Q

在一些实施例中,量化系数S和量化零点Zp可以分别通过公式(2)和(3)表示如下:

在公式(2)中,X

Zp=Round(S*X

在公式(3)中,Round()表示求四舍五入函数,X

在一些实施例中,数据反量化可以理解为将定点数对应的取值范围的数据映射至浮点数对应的取值范围。例如公式(4)所示:

X=(Q+Zp)/S  (4)。

在公式(4)中,X表示浮点数集合,Q表示定点数集合,S表示浮点数集合X的量化系数,Zp表示浮点数集合X的量化零点。

图1根据本申请的一些实施例,示出了一种对浮点数集合x

可以理解,-max(|x

可以理解,UINT型可以表示为UINTn,其中n可以取4、8、16、32等,也可以取其他整数,并且UINTn型的无符号数据的取值范围为[0,2

在另一些实施例中,量化过程还可以包括非对称量化,例如对xf进行8位非对称量化的过程即是将区间[min(xf),max(xf)]映射到区间[0,255]中,具体不做限制。

在一些实施例中,公式(2)中的浮点数集合X最大值X

在一些实施例中,神经网络模型包括多个运算层,例如逐元素操作(Elementwise/Eltwise)、卷积层、激活层和归一化层等,具体不做限制。其中,神经网络模型每个运算层具有对应的量化系数S。如前所述,当神经网络模型包括较多层运算层时,如果每层运算层的量化系数都存在误差,那么量化误差会随着层级逐渐增大,导致量化后神经网络模型的精度损失较大。

为此,本发明提出一种数据处理方法,该方法包括:首先,将多组待处理数据输入至神经网络模型后,获取神经网络模型中各运算层对应多组待处数据的浮点输出数据后,对各组浮点输出数据进行降噪处理,并基于降噪后的各组浮点输出数据确定对应运算层的量化因子,例如,浮点数最大值和浮点数最小值,通过该量化因子确定对应运算层的量化系数。如此,后续神经网络模型在对应运算层进行运算时,可以直接基于该运算层的量化系数将浮点数转化为定点数进行运算。

可以理解,由于神经网络模型中每层运算层的量化系数是通过降噪数据确定的,可以降低噪声信号导致的量化系数误差,确保量化系数的准确性,减少量化过程中浮点数转定点数的精度损失,提高运算精度。且神经网络模型通过数量级较小的定点数进行运算,可以提高神经网络模型的运算效率。

在一些实施例中,多组待处理数据可以是多个图片文件、视频文件和音频文件等,具体不做限制。例如,一组待处理数据对应一个图片文件的数据,如像素值数据、亮度值数据等,且一个图片文件对应运算层中的输出作为一个浮点数集合X

在一些实施例中,对各组浮点数集合X

可以理解,奇异值分解、离散余弦变换和小波分解等均是通过对浮点数进行特征分解后,滤除特征分解中数值较小的特征值从而滤除浮点数中可能存在的噪声信号,通过数值较大的特征值表示浮点数的特征的方式实现,具体降噪过程案件下文降噪处理方法的描述。

在一些实施例中,基于各个浮点数集合的浮点数最大值X

其次,基于目标浮点数最大值X

可以理解,通过对各个浮点数集合X

可以理解,通过加权平均数、平均数、众数等方式得到的目标浮点数最大值X

以下通过奇异值分解作为示例,对浮点数集合X

在一些实施例中,在获取浮点数集合X

可以理解,在矩阵Σ中,奇异值通常按照从大到小的顺序进行降序排序,且奇异值衰减较快,通常前1%或前10%排序的奇异值之和可以占全部奇异值之和的99%。例如,对图片文件A进行奇异值分解,得到奇异值矩阵U∑V

在一些实施例中,在得到降噪后各个浮点数即X

例如,对各个浮点数最大值X

在一些实施例中,在确定各个浮点数集合X

以下通过奇异值分解作为示例,对浮点数集合X

在一些实施例中,在确定浮点数集合X

例如,浮点数集合X

进一步地,基于多个校准量化系数,通过公式(1)分别对浮点数集合X

例如,浮点数集合X

可以理解,校准处理过程中通过降噪处理方法进行特征对比,即在校准处理过程中再次进行降噪处理,可以进一步提高数据准确性。

在另一些实施例中,在得到目标浮点数最大值X

在一些实施例中,降噪处理与校准处理可以根据神经网络模型不同算子进行配置,具体不做限制。例如,数据维度归一化操作(batchnorm)、逐元素操作(eltwise)和池化操作(pooling)等,可以配置单独降噪处理以获取目标浮点数最大值X

图2A根据本申请的一些实施例,示出了一种降噪处理方法的步骤流程图。如图2A所示,步骤流程包括:

S211:获取第一数据集合,对第一数据集合进行特征分解,得到第一特征矩阵;其中,第一特征矩阵包括多个第一特征值。

在一些实施例中,第一数据集合可以是输入神经网络模型的一张图片文件对应运算层中的浮点输出数据,将第一数据集合进行特征分解,得到第一特征矩阵,通过第一特征矩阵中的多个第一特征值可以表示对应图片文件的图像特征。例如,对图片文件对应运算层浮点输出数据表示的像素值进行奇异值分解,得到奇异值矩阵U∑V

S212:滤除第一特征矩阵中小于预设特征阈值的部分第一特征值,得到第二特征矩阵。

在一些实施例中,在第一特征矩阵中,第一特征值通常按照从大到小的顺序进行降序排序,且第一特征值衰减较快,通常前1%或前10%排序的第一特征值之和可以占全部第一特征值值之和的99%。例如,在矩阵Σ中,奇异值通常按照从大到小的顺序进行降序排序,且奇异值衰减较快,通常前1%或前10%排序的奇异值之和可以占全部奇异值之和的99%。即滤除矩阵Σ中排序后99%的奇异值得到Σ

S213:基于第二特征矩阵确定对应第一数据集合的第二数据集合。

在一些实施例中,基于第二特征矩阵进行矩阵恢复即可得到降噪后的第一数据集合,即第二数据集合。

图2B根据本申请的一些实施例,示出了一种校准处理方法的步骤流程图。如图2B所示,步骤流程包括:

S221:基于第二数据集合的浮点数最大值和浮点数最小值,确定对应第二数据集合的第一量化系数。

在一些实施例中,获取第二数据集合中浮点数最大值和浮点数最小值,基于上述公式(2)确定对应第二数据集合的第一量化系数。可以理解,神经网络模型中定点数范围通常为固定范围,如UINT8型量化的定点数范围为[-128,127],-128对应Q

S222:基于预设的量化系数区间确定对应第一量化系数的多个第二量化系数。

在一些实施例中,量化系数区间可以是[αScale

S223:基于各个第二量化系数分别对第一数据集合进行量化和反量化处理,得到多个第三数据集合。

在一些实施例中,基于各个第二量化系数,通过公式(1)分别对第一数据集合进行量化处理,得到对应多个第一数据集合的定点数。其次基于得到的多个第一数据集合的定点数以及对应的第二量化系数,通过公式(4)进行反量化处理,得到多个第三数据集合。可以理解,第三数据集合与第一数据集合均为浮点数格式。

S224:分别对多个第三数据集合进行特征分解,得到多个第三特征矩阵。

在一些实施例中,分别对多个第三数据集合进行奇异值分解,得到多个奇异值矩阵U∑

S225:从多个第三特征矩阵中获取与第一特征矩阵最相似的一个第三特征矩阵,并获取最相似的第三特征矩阵对应的第二量化系数,将该第二量化系数作为第三量化系数。

在一些实施例中,矩阵∑

S226:将第三量化系数确定对应第二数据集合的浮点数最大值和浮点数最小值,作为第一量化因子和第二量化因子。

在一些实施例中,在获取到与第一特征矩阵最相似的第三特征矩阵的第三量化系数后,通过公式(2)和公式(3)对应第二数据集合的浮点数最大值和浮点数最小值,并将浮点数最大值作为第一量化因子,浮点数最小值作为第二量化因子。

可以理解,校准处理过程中通过降噪处理方法进行特征对比,即在校准处理过程中再次进行降噪处理,可以进一步提高数据准确性。

图3根据本申请的一些实施例,示出了一种数据处理方法的步骤流程图。如图3所示,步骤流程包括:

S301:获取神经网络模型中各运算层的第一输出数据。

在一些实施例中,将多组待处理数据输入至神经网络模型后,获取神经网络模型中各运算层对应多组待处数据的浮点输出数据,以作为第一数据集合。并将同一运算层的多个第一数据集合作为该运算层的第一输出数据。可以理解,多组待处理数据可以是多个图片文件、视频文件、音频文件等,例如一组待处理数据对应一个图片文件的数据,如像素值数据、亮度值数据等,且一个图片文件对应运算层中的输出作为一个第一数据集合,数据集合的数据类型可以是任意文件类型,具体不做限制。

S302:对第一输出数据进行降噪处理,得到第二输出数据。

在一些实施例中,第一输出数据进行降噪处理后,得到第二输出数据。对应于第一输出数据包括多个第一数据集合,则对应分别对多个第一数据集合进行降噪处理,得到对应的多个第二数据集合,即多个第二数据集合形成该第二输出数据。

在一些实施例中,降噪处理可以通过奇异值分解、离散余弦变换和小波分解等方法实现。可以理解,奇异值分解、离散余弦变换和小波分解等均是通过对第一数据集合进行特征分解后,滤除特征分解中数值较小的特征值从而滤除浮点数中可能存在的噪声信号,通过数值较大的特征值表示浮点数的特征的方式实现,具体可以参见上述奇异值分解的示例或降噪处理方法步骤流程,在此不加以赘述。

S303:基于第二输出数据的浮点数量化区间,确定对应运算层的目标量化系数。

在一些实施例中,对各个第二数据集合的浮点数最大值和浮点数最小值进行校准处理,将校准处理后浮点数最大值和浮点数最小值,作为对应第二数据集合的第一量化因子和第二量化因子。同时,基于各个第二数据集合的第一量化因子和第二量化因子,确定第二输出数据的第一目标量化因子和第二目标量化因子。例如基于多个第一量化因子的平均数作为第一目标量化因子,如将多个浮点数最大值的平均数作为第一目标量化因子;或例如,对多个第一量化因子分别乘以对应权数后将加权平均数作为第一目标量化因子,如将多个浮点数最大值的加权平均数作为第一目标量化因子;又例如,将多个第一量化因子中出现次数最多的数作为第一目标量化因子,如将多个浮点数最大值中出现次数最多的一个数作为第一目标量化因子。

在一些实施例中,基于第一目标量化因子和第二目标量化因子,通过上述公式(2)即可确定对应第一输出数据所输出的运算层的目标量化系数。如此,后续神经网络模型在对应运算层进行运算时,可以直接基于该运算层的量化系数将浮点数表示的第一输出数据转化为定点数表示的输出数据进行运算。可以理解,由于神经网络模型中每层运算层的量化系数是通过降噪数据确定的,可以降低噪声信号导致的量化系数误差,确保量化系数的准确性,减少量化过程中浮点数转定点数的精度损失,提高运算精度。

S304:基于目标量化系数将对应运算层从浮点运算转换为定点运算。

可以理解,定点数的数量级小于浮点数的数量级,通过定点数进行存储和运算,可以提高电子设备存储空间的利用率和数据处理的速度。

图4根据本申请的一些实施例,示出了电子设备10的框图。在一些实施例中,电子设备10可以包括一个或多个处理器1004,与处理器1004中的至少一个连接的系统控制逻辑1008,与系统控制逻辑1008连接的系统内存1012,与系统控制逻辑1008连接的非易失性存储器(non volatile memory,NVM)1016,以及与系统控制逻辑1008连接的网络接口1020。

在一些实施例中,处理器1004可以包括一个或多个单核或多核处理器。在一些实施例中,处理器1004可以包括通用处理器和专用处理器(例如,图形处理器,应用处理器,基带处理器等)的任意组合。在电子设备10采用增强型基站(evolved node B,eNB)或无线接入网(radio access network,RAN)控制器的实施例中,处理器1004可以被配置为执行各种符合的实施例。

在一些实施例中,系统控制逻辑1008可以包括任意合适的接口控制器,以向处理器1004中的至少一个和/或与系统控制逻辑1008通信的任意合适的设备或组件提供任意合适的接口。

在一些实施例中,系统控制逻辑1008可以包括一个或多个存储器控制器,以提供连接到系统内存1012的接口。系统内存1012可以用于加载以及存储数据和/或指令。在一些实施例中系统1000的内存1012可以包括任意合适的易失性存储器,例如合适的动态随机存取存储器(dynamic random access memory,DRAM)。

NVM 1016可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,NVM 1016可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(hard disk drive,HDD),光盘(compactdisc,CD)驱动器,数字通用光盘(digital versatile disc,DVD)驱动器中的至少一个。

NVM 1016可以包括安装电子设备10的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由网络接口1020通过网络访问NVM 1016。

特别地,系统内存1012和NVM 1016可以分别包括:指令1024的暂时副本和永久副本。指令1024可以包括:由处理器1004中的至少一个执行时导致电子设备10实施如图3所示的方法的指令。在一些实施例中,指令1024、硬件、固件和/或其软件组件可另外地/替代地置于系统控制逻辑1008,网络接口1020和/或处理器1004中。

网络接口1020可以包括收发器,用于为电子设备10提供无线电接口,进而通过一个或多个网络与任意其他合适的设备(如前端模块,天线等)进行通信。在一些实施例中,网络接口1020可以集成于电子设备10的其他组件。例如,网络接口1020可以集成于处理器1004的,系统内存1012,NVM 1016,和具有指令的固件设备(未示出)中的至少一种,当处理器1004中的至少一个执行所述指令时,电子设备10实现如图2所示的方法。

网络接口1020可以进一步包括任意合适的硬件和/或固件,以提供多输入多输出无线电接口。例如,网络接口1020可以是网络适配器,无线网络适配器,电话调制解调器和/或无线调制解调器。

在一个实施例中,处理器1004中的至少一个可以与用于系统控制逻辑1008的一个或多个控制器的逻辑封装在一起,以形成系统封装会话初始协议(sessioninitialization protocol,SIP)。在一个实施例中,处理器1004中的至少一个可以与用于系统控制逻辑1008的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(system on chip,SoC)。

电子设备10可以进一步包括:输入/输出(I/O)设备1032。

图5根据本申请的一些实施例,示出了一种SoC 1100的框图。SoC 1100设置在电子设备10中。在图5中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SOC的可选特征。在图5中,SoC 1100包括:互连单元1150,其被耦合至应用处理器1110;系统代理单元1170;总线控制器单元1180;集成存储器控制器单元1240;直接存储器存取(direct memoryaccess,DMA)单元1160。

可以理解,如本文所使用的,术语“模块”可以指代或者包括专用集成电路(application specific integrated circuit,ASIC)、电子电路、执行一个或多个软件或固件程序的处理器(共享、专用、或群组)和/或存储器、组合逻辑电路、和/或提供所描述的功能的其他适当硬件组件,或者可以作为这些硬件组件的一部分。

可以理解,在本申请各实施例中,处理器可以是微处理器、数字信号处理器、微控制器等,和/或其任何组合。根据另一个方面,所述处理器可以是单核处理器,多核处理器等,和/或其任何组合。

本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。

可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(digital signal process,DSP)、微控制器、ASIC或微处理器之类的处理器的任何系统。

程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。

在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器、磁光盘、只读存储器(read-only memory,ROM)、随机存取存储器(random accessmemory,RAM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(electrically-erasable programmable read-onlymemory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息,例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。

在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。

需要说明的是,本发明各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施例并没有将与解决本发明所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。

需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的范围。

技术分类

06120116186886