首页 / 专利库 / 电子零件及设备 / 可编程逻辑器件 / 现场可编程门阵列 / 在现场可编程门阵列上实现深度神经网络的方法及装置

在现场可编程阵列上实现深度神经网络的方法及装置

阅读:754发布:2020-05-11

专利汇可以提供在现场可编程阵列上实现深度神经网络的方法及装置专利检索,专利查询,专利分析的服务。并且本 申请 公开了一种在现场可编程 门 阵列上实现 深度神经网络 的方法和装置,方法包括:分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;根据所述资源需求量和所述饱和吞吐量,枚举将所有所述网络层划分到若干可编程 逻辑门 阵列中的所有划分方案;计算所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案;将所述最优方案上板实现。本申请提供的在 现场可编程门阵列 上实现深度神经网络的方法,规划出将深度神经网络的网络层划分到多个FPGA的最优划分方案,大大提高了FPGA的资源利用率以及深度神经网络的计算能 力 ,能够节约FPGA资源并达到较大总吞吐量,能够很好地满足实现深度神经网络的性能需求。,下面是在现场可编程阵列上实现深度神经网络的方法及装置专利的具体信息内容。

1.一种在现场可编程阵列上实现深度神经网络的方法,其特征在于,包括:
分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;
根据所述资源需求量和所述饱和吞吐量,枚举将所有所述网络层划分到若干可编程逻辑门阵列中的所有划分方案;
计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案;
将所述最优方案上板实现。
2.根据权利要求1所述的方法,其特征在于,所述分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量,包括:
读取所述深度神经网络的参数数据,计算每个网络层的资源需求量;
根据所述资源需求量,获取每个所述网络层的饱和吞吐量。
3.根据权利要求2所述的方法,其特征在于,所述将所述最优方案上板实现,包括:根据所述最优方案,将所述网络层的参数数据写入对应划分的现场可编程门阵列中。
4.根据权利要求2所述的方法,其特征在于,所述网络层的参数数据包括卷积层的层类型、卷积核的个数、卷积核的大小和卷积核的步长。
5.根据权利要求1所述的方法,其特征在于,所述网络层包括卷积层。
6.根据权利要求1所述的方法,其特征在于,所述最优方案包括满足以下条件的划分方案:所述深度神经网络的总吞吐量达到预设阈值,所用现场可编程逻辑门阵列的数量最少。
7.根据权利要求1所述的方法,其特征在于,所述最优方案包括满足以下条件的划分方案:所用现场可编程逻辑门阵列的数量达到预设阈值,所述深度神经网络的总吞吐量最大。
8.一种在现场可编程门阵列上实现深度神经网络的装置,其特征在于,包括:
分析模,用于分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;
枚举模块,用于根据所述资源需求量和所述饱和吞吐量,枚举将所有所述网络层划分到若干可编程逻辑门阵列中的所有划分方案;
选择模块,用于计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案;
上板模块,用于将所述最优方案上板实现。
9.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以实现如权利要求1-7中任一所述的方法。
10.一种数据处理方法,其特征在于,利用通过如权利要求1-7中任一所述的方法实现的深度神经网络来处理数据。

说明书全文

在现场可编程阵列上实现深度神经网络的方法及装置

技术领域

[0001] 本申请涉及计算机技术领域,具体涉及一种在现场可编程门阵列上实现深度神经网络的方法及装置。

背景技术

[0002] 现场可编程门阵列(Field Programmable Gate Array),简称FPGA,是在PAL、GAL、CPLD等可编程器件的基础上发展起来的产物。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。深度神经网络(Deep Neural Networks,简称DNN)是一种具有多层隐含层的人工神经网络
DNN广泛应用于图像处理模式识别人工智能领域。在FPGA上实现深度神经网络已经较为常见,但是基于FPGA的深度神经网络的计算速度较慢。而且,受限于资源等原因,在FPGA上对深度神经网络进行加速的难度较大。
发明内容
[0003] 本申请的目的是提供一种在现场可编程门阵列上实现深度神经网络的方法及装置。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
[0004] 根据本申请实施例的一个方面,提供一种在现场可编程门阵列上实现深度神经网络的方法,包括:
[0005] 分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;
[0006] 根据所述资源需求量和所述饱和吞吐量,枚举将所有所述网络层划分到若干可编程逻辑门阵列中的所有划分方案;
[0007] 计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案;
[0008] 将所述最优方案上板实现。
[0009] 进一步地,所述分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量,包括:
[0010] 读取所述深度神经网络的参数数据,计算每个网络层的资源需求量;
[0011] 根据所述资源需求量,获取每个所述网络层的饱和吞吐量。
[0012] 进一步地,所述将所述最优方案上板实现,包括:根据所述最优方案,将所述网络层的参数数据写入对应划分的现场可编程门阵列中。
[0013] 进一步地,所述网络层的参数数据包括卷积层的层类型、卷积核的个数、卷积核的大小和卷积核的步长。
[0014] 进一步地,所述网络层包括卷积层。
[0015] 进一步地,所述最优方案包括满足以下条件的划分方案:所述深度神经网络的总吞吐量达到预设阈值,所用现场可编程逻辑门阵列的数量最少;
[0016] 进一步地,所述最优方案包括满足以下条件的划分方案:所用现场可编程逻辑门阵列的数量达到预设阈值,所述深度神经网络的总吞吐量最大。
[0017] 根据本申请实施例的另一个方面,提供一种在现场可编程门阵列上实现深度神经网络的装置,包括:
[0018] 分析模,用于分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;
[0019] 枚举模块,用于根据所述资源需求量和所述饱和吞吐量,枚举将所有所述网络层划分到若干可编程逻辑门阵列中的所有划分方案;
[0020] 选择模块,用于计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案;
[0021] 上板模块,用于将所述最优方案上板实现。
[0022] 根据本申请实施例的另一个方面,提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述的方法。
[0023] 根据本申请实施例的另一个方面,提供一种数据处理方法,利用通过上述的方法实现的深度神经网络来处理数据。
[0024] 本申请实施例提供的技术方案可以包括以下有益效果:
[0025] 本申请实施例提供的在现场可编程门阵列上实现深度神经网络的方法,规划出将深度神经网络的网络层划分到多个FPGA的最优划分方案,大大提高了FPGA的资源利用率以及深度神经网络的计算能,能够节约FPGA资源并达到较大总吞吐量,能够很好地满足实现深度神经网络的性能需求。
[0026] 本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

附图说明

[0027] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0028] 图1为本申请一实施例的提供的在现场可编程门阵列上实现深度神经网络的方法流程图
[0029] 图2为本申请一实施例的提供的在现场可编程门阵列上实现深度神经网络的装置结构框图
[0030] 图3为本申请另一实施例的提供的在现场可编程门阵列上实现深度神经网络的方法流程图;
[0031] 图4为本申请另一实施例的提供的在现场可编程门阵列上实现深度神经网络的装置结构框图;
[0032] 图5为本申请另一实施例的提供的在现场可编程门阵列上实现深度神经网络的方法流程图;
[0033] 图6为本申请另一实施例的提供的在现场可编程门阵列上实现深度神经网络的方法流程图。

具体实施方式

[0034] 为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本申请做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0035] 本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0036] 如图1所示,本申请的一个实施例提供了一种在现场可编程门阵列上实现深度神经网络的方法001,包括:
[0037] S10、分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;
[0038] S20、根据所述资源需求量和所述饱和吞吐量,枚举将所有所述网络层划分到若干可编程逻辑门阵列中的所有划分方案;
[0039] S30、计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案;
[0040] S40、将所述最优方案上板实现。
[0041] 在某些实施方式中,所述分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量,包括:
[0042] 读取所述深度神经网络的参数数据,计算每个网络层的资源需求量;
[0043] 根据所述资源需求量,获取每个所述网络层的饱和吞吐量。
[0044] 在某些实施方式中,所述将所述最优方案上板实现,包括:根据所述最优方案,将所述网络层的参数数据写入对应划分的现场可编程门阵列中。
[0045] 在某些实施方式中,所述网络层的参数数据包括卷积层的层类型、卷积核的个数、卷积核的大小和卷积核的步长。所述网络层包括卷积层。
[0046] 在某些实施方式中,所述网络层包括卷积层,还包括输入层池化层、激励层、全连接层和输出层中的一种或几种。所述网络层的参数数据包括卷积层的参数数据,还包括以下数据中的一种或几种:输入层的参数数据、池化层的参数数据、激励层的参数数据、全连接层的参数数据和输出层的参数数据;所述输入层的参数数据包括层类型;所述卷积层的参数数据包括层类型、卷积核的个数、卷积核的大小和卷积核的步长;所述池化层的参数数据包括层类型、池化函数、池化层的大小和池化层的步长;所述激励层的参数数据包括层类型和激励函数;所述全连接层的参数数据包括层类型和输出个数;所述输出层的参数数据包括层类型。
[0047] 在某些实施方式中,所述最优方案包括满足以下条件的划分方案:所述深度神经网络的总吞吐量达到预设阈值,所用现场可编程逻辑门阵列的数量最少;
[0048] 在某些实施方式中,所述最优方案包括满足以下条件的划分方案:所用现场可编程逻辑门阵列的数量达到预设阈值,所述深度神经网络的总吞吐量最大。
[0049] 如图2所示,本实施例还提供一种在现场可编程门阵列上实现深度神经网络的装置,包括:
[0050] 分析模块100,用于分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;
[0051] 枚举模块200,用于根据所述资源需求量和所述饱和吞吐量,枚举将所有所述网络层划分到若干可编程逻辑门阵列中的所有划分方案;
[0052] 选择模块300,用于计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案;
[0053] 上板模块400,用于将所述最优方案上板实现。
[0054] 本实施例还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述的方法。
[0055] 本实施例还提供一种数据处理方法,利用通过上述的方法实现的深度神经网络来处理数据。
[0056] 如图3所示,本申请的一个实施例提供了一种在现场可编程门阵列上实现深度神经网络的方法002,包括:
[0057] A1.预处理步骤:分析所述深度神经网络的每个网络层的资源需求量和饱和吞吐量;
[0058] A2.划分步骤:根据A1得出的结果(资源需求量和饱和吞吐量),规划将所述深度神经网络划分到多个FPGA(现场可编程门阵列)上的最优方案;
[0059] A3.实现步骤:将A2得到的最优方案上板实现。
[0060] 在某些实施方式中,步骤A1包括:
[0061] B1、读取所述深度神经网络的参数数据;
[0062] B2、根据所述深度神经网络的参数数据,计算每个网络层的资源需求量和饱和吞吐量。
[0063] 在某些实施方式中,步骤A1包括:
[0064] C1、读取所述深度神经网络的参数数据,计算所述深度神经网络的每一网络层的资源需求量;
[0065] C2、根据所述资源需求量,获取每个所述网络层的饱和吞吐量;所述饱和吞吐量为资源需求量得到满足时所述网络层的吞吐量。
[0066] 在某些实施方式中,A2包括:
[0067] D1、根据所述资源需求量和所述饱和吞吐量,选取若干FPGA,枚举将所有所述网络层划分到所述若干FPGA中的所有划分方案。
[0068] D2、计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案。
[0069] 在某些实施方式中,A2包括:
[0070] E1.动态规划的状态划分步骤:使用状态压缩来记录每个FPGA的使用情况,使用下标来表示网络层的编号以及最后使用的FPGA编号,方便之后的状态转移;
[0071] E2.动态规划的状态转移步骤:枚举将网络层划分到FPGA中的所有划分方案,并根据预处理步骤得到的饱和吞吐量来计算可行的最大吞吐量,完成状态转移;
[0072] E3.回溯最优解步骤:根据最后的最优结果以及每次记录的使用FPGA编号,得到最优的划分方案。
[0073] 在某些实施方式中,步骤A3包括:根据所述最优方案,将所述网络层的参数数据写入FPGA中,从而实现所述深度神经网络。
[0074] 如图4所示,本实施例还提供了一种在现场可编程门阵列上实现深度神经网络的装置,包括:
[0075] 预处理模块,用于实现步骤A1;
[0076] 划分模块,用于实现步骤A2;
[0077] 上板模块,用于实现步骤A3。
[0078] 如图5所示,本申请的一个实施例提供了一种在现场可编程门阵列上实现深度神经网络的方法003,包括:
[0079] S1、读取所述深度神经网络的参数数据,计算所述深度神经网络的每一网络层的资源需求量。
[0080] 在某些实施方式中,所述深度神经网络的每个网络层分别具有一个用于区分识别的标识。
[0081] 在某些实施方式中,所述网络层包括输入层、卷积层、池化层、激励层、全连接层和输出层;其中,卷积层、池化层、激励层、全连接层的数量均可以为多个,具体数目根据实际应用的需要在设计深度神经网络时设定。
[0082] 在某些实施方式中,将每一网络层的计算单元提取出来,计算利用FPGA实现这些计算单元所需的资源量,例如所需要的存储空间大小等。
[0083] 在某些实施方式中,每一所述网络层均设置有一用于区分识别的标识(可以为编号)。
[0084] S2、根据所述资源需求量,获取每个所述网络层的饱和吞吐量;所述饱和吞吐量为资源需求量得到满足时所述网络层的吞吐量。
[0085] 在某些实施方式中,所述网络层的饱和吞吐量可以通过测试获得,即将所述网络层写入能够满足其资源需求量的FPGA中,测试吞吐量并记录,得到饱和吞吐量。
[0086] 在某些实施方式中,所述网络层的饱和吞吐量可以通过计算获得,通过计算的方式预测获得饱和吞吐量比较省时,但与实际测试获得的饱和吞吐量存在一定误差。
[0087] S3、根据所述资源需求量和所述饱和吞吐量,选取若干FPGA,枚举将所有所述网络层划分到所述若干FPGA中的所有划分方案。
[0088] 在将网络层划分到FPGA中时,确保每一所述网络层均达到饱和吞吐量。
[0089] 在某些实施方式中,每个FPGA都设置有用于区分识别的标识(可以为编号),将互相匹配的网络层与FPGA通过各自的标识标记在一起,以便于记录匹配方式。例如,假设网络层总共有50个,则按顺序将该50个网络层分别设置编号为N1、N2、N3、……、N50;假设最终选定的FPGA总共有10个,则将这10个FPGA分别设置编号为A1、A2、A3、……、A10;如果在划分方案中将第一层至第四层网络层划分到编号A2的FPGA中,则将N1、N2、N3、N4与A2标记在一起,以便于记录该匹配方式。
[0090] 在某些实施方式中,用E(i,j,x)表示将第i层到第j层的网络层都放到第x个FPGA上时该FPGA的吞吐量;其中,1≤i≤n,2≤j≤n,n为所述网络层的总数,例如n=50。根据C和a(i)等已知量,判断是否能将第i到j层网络层放置在第x个FPGA上:
[0091] 当第x个FPGA的资源量小于第i到j层网络层的资源需求量之和时,放不下;
[0092] 当第x个FPGA的资源量大于或等于第i到j层网络层的资源需求量之和时,若E(i,j,x)=min{E(i,j-1,x),b(j)},能放下;否则放不下。
[0093] S4、计算所述所有划分方案的效果参数数据,根据所述所有划分方案的效果参数数据,从所述所有划分方案中选出最优方案。
[0094] 所述划分方案的效果参数数据包括所述深度神经网络的总吞吐量和所用FPGA的数量。
[0095] 在某些实施方式中,所述最优方案满足的条件包括:所述深度神经网络的总吞吐量达到预设阈值,所用FPGA的数量最少;例如,预设阈值为T1,则从所有划分方案中,选择总吞吐量达到T1、所用FPGA的数量最少的那个划分方案;如果存在所用FPGA的数量相同的两个划分方案,则取总吞吐量较大的那个作为最优方案。
[0096] 在某些实施方式中,所述最优方案满足的条件包括:所用FPGA的数量达到预设阈值,所述深度神经网络的总吞吐量最大;例如,预设阈值为10(即所用FPGA的数量不得超过10),则从所有划分方案中,选择所用FPGA的数量不大于10且总吞吐量最大的那个划分方案;如果存在总吞吐量相同的两个划分方案,则取所用FPGA数量较少的那个作为最优方案。
[0097] 每个网络层在资源需求量得到满足的情况下达到饱和吞吐量,如果多个网络层被布置在同一个FPGA上,则该FPGA的吞吐量为这几个网络层吞吐量的最小值。只有连续的网络层才能被布置在同一FPGA上。
[0098] 在某些实施方式中,以F(l,s,x)表示深度神经网络的总吞吐量;l表示已经放置完毕的网络层为第1至第l层网络层;s是一个二进制数,用于标记被使用的FPGA。
[0099] 例如,假设FPGA的总数为12个,编号分别为1~12,则用一个12位二进制数s来表示FPGA的使用情况,FPGA的编号与s的数位从左向右一一对应;例如,s=001101011001,则表示第3、4、6、8、9和12个FPGA被使用。
[0100] 第l层所放置的FPGA是编号为x的FPGA;其中x和s的限制关系是(s&2^x)>0。F(l,s,x)=max{min(E(k+1,l,x),B(y,x),F(k,s-2^x,y))},其中k0,使用循环即可计算完成。定义一个数组作为辅助数组,在计算过程中,使用辅助数组记录F(l,s,x)取得最大值的k和y。
[0101] 根据不同划分方案中F(l,s,x)所取得的值以及所用FPGA的数量,选出最优方案。
[0102] S5、根据所述最优方案,将所述网络层的参数数据写入FPGA中,从而实现所述深度神经网络。
[0103] 所述网络层的参数数据包括:输入层的参数数据、卷积层的参数数据、池化层的参数数据、激励层的参数数据、全连接层的参数数据和输出层的参数数据;
[0104] 所述输入层的参数数据包括层类型;
[0105] 所述卷积层的参数数据包括层类型、卷积核的个数、卷积核的大小和卷积核的步长;
[0106] 所述池化层的参数数据包括层类型、池化函数、池化层的大小和池化层的步长;
[0107] 所述激励层的参数数据包括层类型和激励函数;
[0108] 所述全连接层的参数数据包括层类型和输出个数;
[0109] 所述输出层的参数数据包括层类型。
[0110] 在某些实施方式中,根据每个FPGA的性能参数和各网络层的资源需求量和饱和吞吐量,使用动态规划算法,在满足每个网络层的资源需求量的条件下,得到网络层与FPGA的最优方案,从而既满足了网络层的资源需求量的吞吐量的要求,又避免了FPGA资源的浪费。
[0111] 如图6所示为本申请另一实施例的提供的在现场可编程门阵列上实现深度神经网络的方法的流程图。
[0112] 本实施例还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述的方法。
[0113] 本实施例还提供一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以实现上述的方法。
[0114] 本实施例还提供了一种数据处理方法,利用通过上述在现场可编程门阵列上实现深度神经网络的方法实现的深度神经网络来处理数据,例如处理图像数据等;使上述在现场可编程门阵列上实现深度神经网络与计算机进行通信(FPGA与计算机进行通信),通过计算机将待处理的数据输入上述在现场可编程门阵列上实现深度神经网络进行处理,得到处理结果。在某些实施方式中,在通信时,使用先进先出队列完成FPGA与主机之间的通信。该数据处理方法的数据处理速度较快,处理结果较好。
[0115] 本申请实施例提供的在现场可编程门阵列上实现深度神经网络的方法,规划出将深度神经网络的网络层划分到多个FPGA的最优划分方案,大大提高了FPGA的资源利用率以及深度神经网络的计算能力,能够节约FPGA资源并达到较大总吞吐量,能够很好地满足实现深度神经网络的性能需求。
[0116] 需要说明的是:
[0117] 术语“模块”并非意图受限于特定物理形式。取决于具体应用,模块可以实现为硬件固件软件和/或其组合。此外,不同的模块可以共享公共组件或甚至由相同组件实现。不同模块之间可以存在或不存在清楚的界限。
[0118] 在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。
[0119] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0120] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
[0121] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0122] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0123] 本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0124] 应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
[0125] 应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0126] 以上所述实施例仅表达了本申请的实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈