一种神经网络的计算性能优化方法及系统与流程

文档序号:28632336发布日期:2022-01-26 15:36阅读:99来源:国知局
一种神经网络的计算性能优化方法及系统与流程

1.本发明涉及神经网络技术领域,尤其涉及一种神经网络的计算性能优化方法及系统。


背景技术:

2.人工智能越来越走进人们的日常生活中,比如人脸识别,自动驾驶,同步翻译,语音助手,ai换脸与语音合成等。在专业的科研领域,也越来越发挥着重要且不可替代的作用,比如依靠ai算法进行大数据分析,天气预测,物理数据分析,蛋白质结构解析与预测等等。而这些所有的应用都不离开ai算法,这些ai算法都是由不同种类与结构的神经网络构成。神经网络是一种需要大量计算的应用算法,神经网络越深,所需要的计算量越大,对目标设备的计算性能需求就越高。为了追求在科研或者应用上的极致表现,神经网络被设计得越来越深,越来越大。但是随着神经网络结构变得庞大,计算量也是呈现几何级的上升,而这对目标计算设备的计算性能需求进一步提升,这就使得很多应用很难以部署在嵌入式的小型设备或者移动设备上。为了给神经网络瘦身,减少神经网络的计算量,一般有两种做法,第一种是在不改变神经网络结构的基础上,对神经网络的计算中所使用的数据类型进行低比特化或者量化,这样整个神经网络的计算性能会随着低比特化的程度而呈现较为线性的提高,目标计算设备对中间结果和相关计算参数所需的存储空间也会随着低比特化的程度呈现较为线性的较低。实现计算和存储性能的双重提升。第二种是对神经网络结构进行裁剪,在神经网络训练的过程中,将那些对最终计算结果和精度没有影响的神经网络参数和计算层去掉,同样也可以实现计算量大幅减少,且对最终的神经网络计算结果几乎没有影响。但是这种方法因为存在对神经网络的修剪,使得整个神经网络的结构变得不够规整,在目标设备的部署上存在一定的困难。本技术主要是实现了一种可以大幅提高计算效率的第一种做法,即将神经网络中的计算进行低比特化或者量化。
3.对于一般的神经网络来说,从数学计算的角度讲,它的计算主体就是一层紧接一层的卷积计算。在不同层之间可能存在一些其他的数学操作,但是这些操作只占整个神经网络计算的极少部分。所以对神经网络的量化和相关的量化方法的描述,都是针对卷积计算来展开的。数据类型粗粒度地可分为三种,分别是双精度(double),单精度(float),整型(int)三种。这三种数据类型分别占据64位、32位和32位的计算资源。且从计算的复杂性上来说double》float》int。那么可以说,double占据了最多的计算资源,且耗费了最多的计算时间。int占据了最少的计算资源和耗费了最少的计算时间。这里的int通常指的是int32,即32位整型,占据32位的计算资源。这里的float也称为fp32,即32位浮点。如果计算硬件支持更低比特的计算,比如int16(16位整型),fp16(16位浮点),int8(8位整型),int4(4位整型),int3,int2甚至是int1。那么就可以使用这些低比特的数据类型来进行计算。比如使用int16或者fp16相较于int32,fp32来说相当于增加了一倍的计算资源或者提升了一倍的算力,同理,使用int8、int4分别相当于int32 4倍、8倍的算力。卷积神经网络通常使用float进行计算,那么在保证数学结果或者最后的计算精度的前提下,计算上完全可以使用fp16,
int16,int8这样低比特甚至是int4,int3,int2,int1这样超低比特的数据来代替fp32完成计算。
4.由浮点数据计算转为整型数据计算的过程可以称之为量化,比如fp32转化为较低比特的整型数据的过程,目前卷积神经网络的量化已经成为非常热门的一个领域,量化算法层出不穷。最典型的就是int8的量化,即将fp32的数据转换化为int8的数据,用int8(-128~127)范围内的整数来表示fp32的数据(一般位于-1.0~1.0之间)并进行卷积计算。这类算法的基本原理就是找到卷积网络中的每一层fp32数据的最佳阈值作为量化的边界,假设卷积神经网络某一层中阈值为a,那么本层的量化系数为scale=128/a,本层中所有的元素都要乘以该系数并四舍五入为整数,并将大于127的数据强制等于127,小于-128的数据强制等于-128。这样就保证了所有的数据转化为-128~127之间的整数,并当进行卷积计算的时候,使用转化好的int8数据进行计算。这个过程中最关键的就是卷积网络中每一层量化阈值的寻找,有的是使用交叉熵的方式,找到最合理的阈值,有的是直接使用每一层网络中fp32数据绝对值的最大值作为阈值。每一种方法都能满足最后计算精度的需求。int8的量化比较典型的原因是,int8量化方法简单,且量化后的精度通常能够满足对最终计算结果精度的需求。但是int8的量化不能满足对计算效率的极致追求,在能够满足最终计算精度的基础上,能尽量使用较低比特数据进行计算。因为前面提到,计算过程中数据使用的比特位越低,存储和计算相应的效能都会呈现较为线性的提升。
5.在量化的过程中还有一个概念就是训练时量化和训练后量化。对于部署一款ai应用来说,首先要对ai应用进行训练,就是需要大量的数据以及数据标签来对ai模型或者ai卷积神经网络进行训练,直到ai应用的效果满足要求为止。当网络训练完成之后便可以使用训练好的ai应用去进行应用的部署。从目前的文献以及实际的量化效果来看,对于int8,int16的量化来说,训练后的量化就能完全满足精度的需求,最后的计算结果与fp32计算结果基本一致或者损失很小,不需要参与前期训练的过程。而对于更低比特的量化比如int4,int3,int2甚至int1的量化,则需要在训练的过程中量化,每层的量化阈值作为训练的一个参数,当最终训练完成之后,训练的参数也就固定了下来。
6.传统的低比特量化方法,指的是设定固定的量化精度,比如int6的量化,就将整个网络的量化精度设定为6比特,要进行int4的量化,就将整个网络的量化设定为4比特。
7.一般的,可以将卷积计算表达为:y=∑kx,其中k为神经网络的weight(权重)或者kernel(卷积核),x是卷积网络中当前层的输入或者上一层的输出,称为上一层的feature(特征值),y为当前层的卷积计算结果或者当前层的feature(特征值)。卷积计算过程中会对权重进行量化,并且当经过以上的卷积计算之后有一般会有relu层(激活层),现有技术的算法直接将relu之后的激活值限定到[0,1],大部分的激活值都是位于该区间之内,但不可避免地损失了部分数据,对于低比特,比如4bit甚至更低的3bit、2bit的量化来说,会有不小的精度损失;同时量化只能对整个网络设定固定的比特位量化,比如要进行4比特的量化,则对整个网络进行了4比特的量化。同样要进行3比特甚至2比特的量化,则只能对整个网络进行对应比特的量化,这种单一的量化方法并不能充分利用低比特量化带来的优势。


技术实现要素:

[0008]
有鉴于此,本发明提出了一种神经网络的计算性能优化方法及系统,解决了激活
值阈值确定及激活值阈值带来的精度损失问题,解决了固定的低比特量化精度不够的问题,提高了计算效率,降低了占用的存储空间。
[0009]
基于上述目的,本发明实施例的一方面提供了一种神经网络的计算性能优化方法,具体包括如下步骤:
[0010]
定义激活值阈值训练方法及权重训练方法;
[0011]
确定神经网络的初始比特位,基于初始比特位并利用所述激活值阈值训练方法及所述权重训练方法对所述神经网络进行量化训练直到所述神经网络的推理精度满足预设要求则停止训练;
[0012]
随机抽取预设数量张训练图片进行推理,并在推理结束后获取神经网络每层的激活值,并基于所述激活值计算得到每层激活值的标准差;
[0013]
获取基于所述神经网络训练得到的每层的激活值阈值,基于所述每层激活值的标准差和所述每层的激活值阈值确定每层分布的集中性,并将各个层的集中性划分为不同的阶梯;
[0014]
计算每一段阶梯的集中性的值,并基于所述集中性的值,确定对应阶梯的量化比特位。
[0015]
在一些实施方式中,定义激活值阈值训练方法,包括:
[0016]
将激活值的范围限定在0到激活值阈值之间;
[0017]
对激活值进行前向定点量化;
[0018]
对激活值阈值进行反向更新。
[0019]
在一些实施方式中,定义权重训练方法,包括:
[0020]
对所述权重进行值域转换;
[0021]
对值域转换后的权重进行前向定点量化;
[0022]
对量化后的权值进行反向更新。
[0023]
在一些实施方式中,将各个层的集中性划分为不同的阶梯,包括:
[0024]
基于均值漂移聚类,将神经网络中所有层的激活值按照分布的集中性划分为不同的阶梯。
[0025]
在一些实施方式中,计算每一段阶梯的集中性的值,包括:
[0026]
基于以下公式计算每一段阶梯的集中性的值;
[0027][0028]
其中,ctdn表示每一段阶梯的集中性的值,n表示阶梯序号0,1,
……
,n;σ
stgn_mean
表示本段阶梯内的标准差均值;σ
stgn_mean
表示本段阶梯内的激活值阈值均值。
[0029]
在一些实施方式中,基于所述集中性的值,确定对应阶梯的量化比特位,包括:
[0030]
按照所述集中性的值越大,量化比特位越小的策略,确定所述对应阶梯的量化比特位。
[0031]
在一些实施方式中,方法进一步包括:
[0032]
基于各个层对应的量化比特位对所述神经网络进行训练,并基于新一轮神经网络训练的推理精度判断是否返回随机抽取预设数量张训练图片进行推理的步骤。
[0033]
在一些实施方式中,基于新一轮神经网络训练的推理精度判断是否返回随机抽取预设数量张训练图片进行推理的步骤,包括:
[0034]
响应于所述新一轮神经网络的推理精度不满足所述预设要求,获取上一轮训练得到的各个层的量化比特位为最优量化比特位。
[0035]
在一些实施方式中,基于新一轮神经网络训练的推理精度判断是否返回随机抽取预设数量张训练图片进行推理的步骤,包括:
[0036]
响应于所述新一轮神经网络的推理精度满足所述预设要求,返回随机抽取预设数量张训练图片进行推理的步骤,直至新一轮训练的推理精度满足不了所述预设要求;
[0037]
获取上一轮训练得到的各个层的量化比特位为最优量化比特位。
[0038]
本发明实施例的另一方面,还提供了一种神经网络的计算性能优化系统,包括:
[0039]
配置模块,所述配置模块配置为定义激活值阈值训练方法及权重训练方法;
[0040]
训练模块,所述训练模块配置为确定神经网络的初始比特位,基于初始比特位并利用所述激活值阈值训练方法及所述权重训练方法对所述神经网络进行量化训练直到所述神经网络的推理精度满足预设要求则停止训练;
[0041]
处理模块,所述处理模块配置为随机抽取预设数量张训练图片进行推理,并在推理结束后获取神经网络每层的激活值,并基于所述激活值计算得到每层激活值的标准差;
[0042]
所述处理模块还配置为获取基于所述神经网络训练得到的每层的激活值阈值,基于所述每层激活值的标准差和所述每层的激活值阈值确定每层分布的集中性,并将各个层的集中性划分为不同的阶梯;
[0043]
所述处理模块还配置为计算每一段阶梯的集中性的值,并基于所述集中性的值,确定对应阶梯的量化比特位。
[0044]
本发明具有以下有益技术效果:通过定义新的激活值阈值训练方法及新的权重训练方法,基于新的激活值阈值训练方法及新的权重训练方法和设置的初始比特位对神经网络进行训练,可以得到各个层的激活值阈值;训练结束后,抽取的一定数量的训练图片进行推理,获取神经网络每层的激活值分布,并计算得到每层激活值直方图分布的标准差,根据标准差和激活阈值确定激活值分布的集中性;基于每层的集中性将神经网络中所有层的集中性数据根据阶梯划分不同的阶梯,计算每一段阶梯的集中性的值,以确定每段阶梯的量化比特位,通过上述方法解决了激活值阈值确定及激活值阈值带来的精度损失问题,解决了固定的低比特量化精度不够的问题,提高了计算效率,降低了占用的存储空间,提高了神经网络计算效率,降低了占用的存储空间。
附图说明
[0045]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0046]
图1为本发明提供的神经网络的计算性能优化方法的一实施例的框图;
[0047]
图2为本发明提供的神经网络的计算性能优化系统的一实施例的示意图。
具体实施方式
[0048]
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0049]
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
[0050]
基于上述目的,本发明实施例的第一个方面,提出了一种神经网络的计算性能优化方法的实施例。如图1所示,其包括如下步骤:
[0051]
步骤s101、定义激活值阈值训练方法及权重训练方法;
[0052]
步骤s103、确定神经网络的初始比特位,基于初始比特位并利用所述激活值阈值训练方法及所述权重训练方法对所述神经网络进行量化训练直到所述神经网络的推理精度满足预设要求则停止训练;
[0053]
步骤s105、随机抽取预设数量张训练图片进行推理,并在推理结束后获取神经网络每层的激活值,并基于所述激活值计算得到每层激活值的标准差;
[0054]
步骤s107、获取基于所述神经网络训练得到的每层的激活值阈值,基于所述每层激活值的标准差和所述每层的激活值阈值确定每层分布的集中性,并将各个层的集中性划分为不同的阶梯;
[0055]
步骤s109、计算每一段阶梯的集中性的值,并基于所述集中性的值,确定对应阶梯的量化比特位。
[0056]
本实施例通过定义新的激活值阈值训练方法及新的权重训练方法,基于新的激活值阈值训练方法及新的权重训练方法和设置的初始比特位对神经网络进行训练;训练结束后,抽取的一定数量的训练图片进行推理,获取神经网络每层的激活值分布,并计算得到每层激活值直方图分布的标准差σ
l
,根据标准差σ
l
和上一训练中确定的每层的激活阈值β
l
确定激活值分布的集中程度p
l

l

l
),其中l表征神经网络的层数,p
l

l

l
)确定该层激活值分布的集中性,且p
l

l

l
)=(σ
l

l
),因此某一层的激活值分布的集中性可以表达为包含标准差和阈值两个元素的数组;根据上一步骤中得到的每层的集中性,将神经网络中所有层的集中性数据根据阶梯划分不同的阶梯;计算每一段阶梯的集中性的值,并基于每段集中性的值与量化比特位的关系和初始量化比特位,确定每段阶梯的量化比特位,即确定了各个层的量化比特位。
[0057]
通过上述方法,提高了神经网络计算效率,降低了占用的存储空间。
[0058]
在一些实施方式中,定义激活值阈值训练方法,包括:
[0059]
将激活值的范围限定在0到激活值阈值之间;
[0060]
对激活值进行前向定点量化;
[0061]
对激活值阈值进行反向更新。
[0062]
具体的,激活值的激活范围不再限定于传统的[0,1]之间,而是将该限定范围作为训练过程中损失函数的一个变量,随着训练的进行而实时更新变化,最终达到最佳的阈值范围。
[0063]
对于卷积神经网络的每一层来说,经过激活之后,例如将激活值阈值设为β,那么有:
[0064][0065]
其中,y
clip
为激活值,y为每一个卷积计算的输出,经过以上限定之后y
clip
∈[0,β]。
[0066]
之后根据定点量化函数quantizen,将限定范围后的激活值y量化为n比特的定点数据,即:
[0067][0068]
其中n为我们要量化的bit数,比如我们要将激活值量化为4比特定点数据,那么n就设置为4。yq作为网络当前层的输出或者作为下一层网络的输入参与下一层的卷积计算。
[0069]
因为激活值阈值β为要训练的参数,需要进行更新,假设卷积网络的损失函数为l,那么基于损失函数得到更新后的激活值阈值为:
[0070][0071]
其中,η为学习率。
[0072]
由偏导的可传递性可以得到:
[0073][0074]
另外由ste(直通估计)可以得到:
[0075][0076]
因此,当时,clip函数与普通的relu效果相同,β不更新;当时,由以上推导得:
[0077]
在一些实施方式中,定义权重训练方法,包括:
[0078]
对所述权重进行值域转换;
[0079]
对值域转换后的权重进行前向定点量化;
[0080]
对量化后的权值进行反向更新。
[0081]
具体的,首先定义权重值域转换函数f,输入为没有界限限定的权值kf,输出为[0,1]的数据f(kf),具体为:
[0082][0083]
然后利用量化函数将权值量化为:
[0084]kq
=2quantizen(f(kf))-1
[0085]
因此kq的值域为[-1,1]。
[0086]
综上,卷积计算的前向过程可以表达为:y=∑kqxq,其中xq为神经网络当前层的输入或者作为上一层网络的输出;kq作为神经网络当前层的输出或者作为下一层网络的输入。
[0087]
最后对权值进行反向更新,具体更新表达式如下:
[0088][0089]
在一些实施方式中,将各个层的集中性划分为不同的阶梯,包括:
[0090]
基于均值漂移聚类,将神经网络中所有层的激活值按照分布的集中性划分为不同的阶梯。
[0091]
具体的,将神经网络中所有层的集中性数据表示为(p1,p2,p3,...,p
l-1
,p
l
)根据阶梯划分函数f
stg
划分为不同的阶梯段。
[0092]
假设神经网络的层数为l=10,f
stg
(p1,p2,p3,p4,p5,p6,p7,p8,p9,p
10
)=(p1,p6,p
10
),(p2,p3,p7),(p4,p5,p8,p9)。
[0093]
经过分段划分函数f
stg
之后,10层的网络,根据激活值分布的集中性数据划分为了3个阶梯。
[0094]fstg
属于经典机器学习中的一种聚类算法,称为均值漂移聚类。通过均值漂移聚类将神经网络中所有层的激活值按照分布的集中性进行聚类划分。通过该聚类算法,将10层网络阶梯地划分成了三类,其中每一类包含层的激活值分布具有相同的集中性。
[0095]
在一些实施方式中,计算每一段阶梯的集中性的值,包括:
[0096]
基于以下公式计算每一段阶梯的集中性的值;
[0097][0098]
其中,ctdn表示每一段阶梯的集中性的值,n表示阶梯序号0,1,
……
,n;σ
stgn_mean
表示本段阶梯内的标准差均值;σ
stgn_mean
表示本段阶梯内的激活值阈值均值。
[0099]
具体的,划分集中性之后,计算每一类的集中性大小。将不同阶梯的集中性大小表示为其自身阶梯内的标准差均值与激活阈值均值乘积的倒数。可见标准差均值越大,激活阈值均值越高,阶梯的集中性越小或者越差;标准差均值越小,激活阈值均值越低,阶梯的集中性越大或越好。
[0100]
例如,10层的神经网络被划分为了三个阶梯,分别为:
[0101]
stg1=(p1,p6,p
10
)=((σ1,β1),(σ6,β6),(σ
10
,β
10
)),
[0102]
stg2=(p2,p3,p7)=((σ2,β2),(σ3,β3),(σ7,β7)),
[0103]
stg3=(p4,p5,p8,p9)=((σ4,β4),(σ5,β5),(σ8,β8),(σ9,β9))。
[0104]
将集中性大小表示为ctd,三个阶梯的集中性大小分别表示为:
[0105]
[0106][0107][0108]
在一些实施方式中,基于所述集中性的值,确定对应阶梯的量化比特位,包括:
[0109]
按照所述集中性的值越大,量化比特位越小的策略,确定所述对应阶梯的量化比特位。
[0110]
具体的,基于得到的不同阶梯的集中性的值,确定不同阶梯内对应的神经网络层使用什么样的量化比特位。假设我们原始的量化比特位为int8,以上面三个阶梯的例子为例,假设ctd1《ctd2《ctd3,那么在接下来的一轮训练中,在对集中性的值进行由小到大的排列后,将它们对应的量化比特位逐级递减的原则,设置stg1内的神经网络量化位为int7,stg2内的神经网络量化位为int6,stg3内的神经网络量化位为int5。
[0111]
在一些实施方式中,方法进一步包括:
[0112]
基于各个层对应的量化比特位对所述神经网络进行训练,并基于新一轮神经网络训练的推理精度判断是否返回随机抽取预设数量张训练图片进行推理的步骤。
[0113]
在一些实施方式中,基于新一轮神经网络训练的推理精度判断是否返回随机抽取预设数量张训练图片进行推理的步骤,包括:
[0114]
响应于所述新一轮神经网络的推理精度不满足所述预设要求,获取上一轮训练得到的各个层的量化比特位为最优量化比特位。
[0115]
在一些实施方式中,基于新一轮神经网络训练的推理精度判断是否返回随机抽取预设数量张训练图片进行推理的步骤,包括:
[0116]
响应于所述新一轮神经网络的推理精度满足所述预设要求,返回随机抽取预设数量张训练图片进行推理的步骤,直至新一轮训练的推理精度满足不了所述预设要求;
[0117]
获取上一轮训练得到的各个层的量化比特位为最优量化比特位。
[0118]
具体的,基于新确定的各个层的量化比特位对神经网络进行训练,直至网络的推理精度满足需求;然后再次重复抽取一定数量张图片进行推理,直到得到各个阶梯对应的量化比特位的步骤,再次基于新确定的各个层的量化比特位对神经网络进行训练,如此循环,直至最后训练的精度不能满足要求时截止。
[0119]
基于同一发明构思,根据本发明的另一个方面,如图2所示,本发明的实施例还提供了一种神经网络的计算性能优化系统,包括:
[0120]
配置模块110,所述配置模块110配置为定义激活值阈值训练方法及权重训练方法;
[0121]
训练模块120,所述训练模块120配置为确定神经网络的初始比特位,基于初始比特位并利用所述激活值阈值训练方法及所述权重训练方法对所述神经网络进行量化训练直到所述神经网络的推理精度满足预设要求则停止训练;
[0122]
处理模块130,所述处理模块130配置为随机抽取预设数量张训练图片进行推理,并在推理结束后获取神经网络每层的激活值,并基于所述激活值计算得到每层激活值的标
准差;
[0123]
所述处理模块130还配置为获取基于所述神经网络训练得到的每层的激活值阈值,基于所述每层激活值的标准差和所述每层的激活值阈值确定每层分布的集中性,并将各个层的集中性划分为不同的阶梯;
[0124]
所述处理模块130还配置为计算每一段阶梯的集中性的值,并基于所述集中性的值,确定对应阶梯的量化比特位。
[0125]
本发明实施例还可以包括相应的计算机设备。计算机设备包括存储器、至少一个处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时执行上述任意一种方法。
[0126]
其中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的所述神经网络的计算性能优化方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行装置的各种功能应用以及数据处理,即实现上述方法实施例的神经网络的计算性能优化方法。
[0127]
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据装置的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0128]
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
[0129]
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0130]
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0131]
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0132]
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0133]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0134]
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1