稀疏张量计算方法、装置、设备及存储介质
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种稀疏张量计算方法、装置、设备及存储介质。
背景技术
本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
张量包括标量、向量和线性算子,可以用坐标系统来表示,记作标量的数组。张量被广泛应用在基于深度神经网络领域中,用以表示大量神经元的权重信息。稀疏张量指大部分元素为零的张量,这种张量普遍存在于训练好的深度学习模型中。如何能高效快速的完成稀疏张量的计算,对于提高神经网络计算具有重大意义。
目前稀疏张量优化方法主要解决张量的存储问题,对于张量计算缺乏合理的优化机制,使得数据运算效率较低。
发明内容
本发明实施例提供了一种稀疏张量计算方法、装置、设备及存储介质,提高了数据运算效率。
第一方面,本发明实施例提供了一种稀疏张量计算方法,该方法包括:
获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引;
将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理;
将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果。
第二方面,本发明实施例还提供了一种稀疏张量计算装置,该装置包括:
数据获取模块,用于获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引;
数据处理模块,用于将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理;
数据输出模块,用于将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果。
第三方面,本发明实施例还提供了一种设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的稀疏张量计算方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例所述的稀疏张量计算方法。
本发明实施例中,获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引;将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理;将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果,该方案提高了数据运算效率。
附图说明
图1为本发明实施例提供的一种稀疏张量计算方法的流程图;
图2为本发明实施例提供的另一种稀疏张量计算方法的流程图;
图2a为本发明实施例提供的一种稀疏张量计算方法对应的硬件结构示意图;
图3为本发明实施例提供的另一种稀疏张量计算方法的流程图;
图4为本发明实施例提供的另一种稀疏张量计算方法的流程图;
图5为本发明实施例提供的一种稀疏张量计算装置的结构框图;
图6为本发明实施例提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
图1为本发明实施例提供的一种稀疏张量计算方法的流程图,本实施例可适用于对稀疏矩阵进行计算处理,该方法可以由设备如计算机来执行,具体包括如下步骤:
步骤S101、获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引。
张量包括标量、向量和线性算子,可以用坐标系统来表示,记作标量的数组。张量被广泛应用在基于深度神经网络领域中,用以表示大量神经元的权重信息。
其中,稀疏张量指大部分元素为零的张量,这种张量普遍存在于训练好的深度学习模型中,如何快速高效的完成针对稀疏张量的计算具有重要意义。
在一个实施例中,获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引,其中该稀疏张量数据可以包括一个或多个稀疏张量。其中,稀疏张量数据中的非零元素指元素值不为0的元素,示例性的,以3*3矩阵为例,矩阵的第一行元素值分别为[0,1,0],矩阵第二行元素为[0,0,0],矩阵第三行元素为[0,0,2],则非零元素即为该3*3矩阵中第一行第二列对应的元素以及第三行第三列对应的元素。其中,索引即表示该非零元素在稀疏张量中对应的位置,如前例中的“第一行第二列”和“第三行第三列”组成了该稀疏张量非零元素的索引。
在一个实施例中,所述获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引包括:获取稀疏张量数据,对所述稀疏张量数据进行压缩,得到压缩稀疏张量数据,所述压缩稀疏张量数据包括单独存储的非零元素以及对应的索引。示例性的,具体的压缩方式可以是基于行的稀疏张量的压缩,如CSR(Compressed Sparse Row)压缩,还可以是基于列的稀疏张量的压缩,如CSC(Compressed Sparse Column)压缩,还可以采用使用下标的压缩格式,如使用三元组(如xyz三元组,x表示行、y表示列列和z表示x行y列对应的元素的数值)的方式。上述压缩格式的数据中,稀疏张量的非零元素的值和对应的下标(索引)相互分开存储。由此,通过对稀疏张量数据进行压缩后直接得到稀疏张量数据中的非零元素以及索引。
在一个实施例中,所述获取稀疏张量数据,对所述稀疏张量数据进行压缩包括:通过数据通道接收所述稀疏张量数据,在所述稀疏张量数据的传输过程中进行压缩。示例性的,原始的稀疏张量数据存储在主机存储单元中,在读取该原始的稀疏张量将其转存到设备存储的过程中对该原始的稀疏张量进行压缩得到压缩格式的压缩稀疏张量数据,即得到稀疏张量对应的非零元素和索引。由此,节省了在设备存储中进行稀疏张量压缩导致的压缩效率低、占用存储空间的问题。
步骤S102、将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理。
在一个实施例中,将非零元素对应的元素数值转存至设定存储空间,该设定的存储空间可以是下一级缓存也可以是当前存储空间(设备存储)中开辟的一段存储空间,用于计算单元读取该设定存储空间中的数据内容(即稀疏张量的非零元素值)进行计算处理。如计算单元对非零元素的值进行累加处理或者深度学习中的复杂逻辑处理等。
步骤S103、将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果。
在一个实施例中,当计算单元对非零元素计算完毕得到计算结果后,相应的将该计算结果和之前得到的稀疏张量的索引进行匹配,以得到完整的运算结果并解压缩输出至主机存储,其中,该解压缩的过程可在由设备存储输出至主机存储的传输过程中完成,不占用额外的存储空间,提高了数据压缩效率。
由上述方案可知,在对稀疏张量进行计算时,单独存储并获取非零元素值进行计算,提高了稀疏张量的计算效率,同时,无需将稀疏张量的索引进一步进行存储,节省了存储空间。
图2为本发明实施例提供的另一种稀疏张量计算方法的流程图,可选的,将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理包括:将所述非零元素对应的元素数值从初级缓存转存至二级缓存空间中;将所述元素数值从二级缓存空间转存至一级缓存空间中,并从所述一级缓存空间中读出所述元素数值至计算单元进行计算处理;其中,所述一级缓存空间小于所述二级缓存空间,所述一级缓存空间和所述计算单元之间的硬件存储位置近于所述二级缓存空间和所述计算单元之间的硬件存储位置。如图2所示,技术方案具体如下:
步骤S201、获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引。
步骤S202、将所述非零元素对应的元素数值从初级缓存转存至二级缓存空间中。
步骤S203、将所述元素数值从二级缓存空间转存至一级缓存空间中,并从所述一级缓存空间中读出所述元素数值至计算单元进行计算处理。
其中,一级缓存空间小于所述二级缓存空间,所述一级缓存空间和所述计算单元之间的硬件存储位置近于所述二级缓存空间和所述计算单元之间的硬件存储位置。图2a为本发明实施例提供的一种稀疏张量计算方法对应的硬件结构示意图,如图2a所示,原始输入稀疏张量由主机存储传输至设备存储,传输过程完成稀疏张量的压缩在设备存储中得到压缩格式的稀疏张量数据,包括稀疏张量的非零值以及稀疏张量非零值的索引,将该非零值转存至L2级缓存后进一步转存至L1级缓存用以供计算单元计算,L1缓存的硬件位置更接近计算单元,进一步提高了数据计算效率,同时将输出结果逐层反馈至设备存储和索引进行匹配后得到压缩的输出稀疏张量,通过解压缩处理传输至主机存储。其中,运算输出结果可以是单独存储在未记录数据的缓存中,也可以是覆盖原始的张量数据。
步骤S204、将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果。
由上述可知,在对稀疏张量进行计算时,提取稀疏张量中的非零元素值并逐级进行缓存,提高了计算效率同时未缓存对应的索引,节省了存储空间。
图3为本发明实施例提供的另一种稀疏张量计算方法的流程图,可选的,所述将计算结果和所述索引进行匹配包括:将所述计算结果和所述索引进行连续存储;或记录所述计算结果和所述索引的数据起始位置和数据大小,根据所述数据起始位置和数据大小将所述将计算结果和所述索引进行关联。如图3所示,技术方案具体如下:
步骤S301、获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引。
步骤S302、将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理。
步骤S303、将所述计算结果和所述索引进行连续存储;或记录所述计算结果和所述索引的数据起始位置和数据大小,根据所述数据起始位置和数据大小将所述将计算结果和所述索引进行关联,输出所述运算输出结果。
在一个实施例中,所述将计算结果和所述索引进行匹配包括:将所述计算结果和所述索引进行连续存储。示例性的,将计算得到的计算结果和索引连续存储在存储单元中,如将索引数据连续存储在计算结果的下一个物理起始地址的位置,以将计算结果和对应的索引进行匹配,在解压缩的过程中依据连续存储的计算数据和索引得到完整的和原始输入的稀疏张量对应的运算输出结果。
在另一个实施例中,所述将计算结果和所述索引进行匹配包括:记录所述计算结果和所述索引的数据起始位置和数据大小,根据所述数据起始位置和数据大小将所述将计算结果和所述索引进行关联。该计算结果和索引的匹配方式中,并非将计算结果和索引连续存储而是记录二者的关联关系,由此解决了存储空间不允许连续存储或者需要再次转存带来的效率较低的问题。示例性的,计算结果存储在起始地址1000的位置,数据大小为1kb,索引存储在起始地址为8000的位置,数据大小为1kb。
由上述可知,通过对稀疏张量的非零元素进行单独计算,并将计算结果和索引进行匹配,提高了数据运算效率,节省了数据存储空间。
图4为本发明实施例提供的另一种稀疏张量计算方法的流程图,可选的,在所述确定所述稀疏张量数据中的非零元素以及索引之前,还包括:判断所述稀疏张量数据的运算是否包括元素之间的计算;相应的,所述确定所述稀疏张量数据中的非零元素以及索引包括:如果所述稀疏张量数据的运算不包括元素之间的计算,则确定所述稀疏张量数据中的非零元素以及索引。如图4所示,技术方案具体如下:
步骤S401、获取稀疏张量数据,确定和所述稀疏张量数据对应的运算操作类别。
其中,针对稀疏张量的运算操作类别可以是元素操作和聚集操作,其中聚集操作需要对稀疏张量中的元素之间进行计算,元素操作指对稀疏张量中的单个元素进行操作无需元素之间的操作,如对每个非零元素值加一,聚集操作将稀疏张量的每行元素求和。
步骤S402、判断所述操作类别是否为元素操作,如果是,则执行步骤S403,否则执行步骤S406。
步骤S403、确定所述稀疏张量数据中的非零元素以及索引。
步骤S404、将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理。
步骤S405、将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果。
步骤S406、确定所述稀疏张量数据中的每一行的非零元素以及索引。
在一个实施例中,聚集操作以对稀疏张量的每一行中的元素之间进行操作为例,需要说明的是,聚集操作还可以是对稀疏张量的每一列或者某几行和某几列的操作,此处以对行操作为例。
步骤S407、将当前行的索引对所述当前行的非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理,将计算结果和所述当前行的索引进行匹配,当所有行均计算完毕后,输出运算输出结果。
其中,该设定存储空间可以是二级缓存和一级缓存,该一级缓存空间小于所述二级缓存空间,所述一级缓存空间和所述计算单元之间的硬件存储位置近于所述二级缓存空间和所述计算单元之间的硬件存储位置。
由上述可知,针对聚集操作运算,依据聚集操作的具体操作内容进行划分得到对应的数据元素和索引并进行遍历计算得到最终的运算输出结果,运算过程中将数据元素和索引存储至设定的存储空间,便于计算单元的运算,提高了数据计算效率。
图5为本发明实施例提供的一种稀疏张量计算装置的结构框图,该装置用于执行上述实施例提供的稀疏张量计算方法,具备执行方法相应的功能模块和有益效果。如图5所示,该装置具体包括:数据获取模块101、数据处理模块102和数据输出模块103,其中,
数据获取模块101,用于获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引。
在一个实施例中,获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引,其中该稀疏张量数据可以包括一个或多个稀疏张量。其中,稀疏张量数据中的非零元素指元素值不为0的元素,示例性的,以3*3矩阵为例,矩阵的第一行元素值分别为[0,1,0],矩阵第二行元素为[0,0,0],矩阵第三行元素为[0,0,2],则非零元素即为该3*3矩阵中第一行第二列对应的元素以及第三行第三列对应的元素。其中,索引即表示该非零元素在稀疏张量中对应的位置,如前例中的“第一行第二列”和“第三行第三列”组成了该稀疏张量非零元素的索引。
在一个实施例中,所述获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引包括:获取稀疏张量数据,对所述稀疏张量数据进行压缩,得到压缩稀疏张量数据,所述压缩稀疏张量数据包括单独存储的非零元素以及对应的索引。示例性的,具体的压缩方式可以是基于行的稀疏张量的压缩,如CSR(Compressed Sparse Row)压缩,还可以是基于列的稀疏张量的压缩,如CSC(Compressed Sparse Column)压缩,还可以采用使用下标的压缩格式,如使用三元组(如xyz三元组,x表示行、y表示列列和z表示x行y列对应的元素的数值)的方式。上述压缩格式的数据中,稀疏张量的非零元素的值和对应的下标(索引)相互分开存储。由此,通过对稀疏张量数据进行压缩后直接得到稀疏张量数据中的非零元素以及索引。
在一个实施例中,所述获取稀疏张量数据,对所述稀疏张量数据进行压缩包括:通过数据通道接收所述稀疏张量数据,在所述稀疏张量数据的传输过程中进行压缩。示例性的,原始的稀疏张量数据存储在主机存储单元中,在读取该原始的稀疏张量将其转存到设备存储的过程中对该原始的稀疏张量进行压缩得到压缩格式的压缩稀疏张量数据,即得到稀疏张量对应的非零元素和索引。由此,节省了在设备存储中进行稀疏张量压缩导致的压缩效率低、占用存储空间的问题。
数据处理模块102,用于将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理。
在一个实施例中,将非零元素对应的元素数值转存至设定存储空间,该设定的存储空间可以是下一级缓存也可以是当前存储空间(设备存储)中开辟的一段存储空间,用于计算单元读取该设定存储空间中的数据内容(即稀疏张量的非零元素值)进行计算处理。如计算单元对非零元素的值进行累加处理或者深度学习中的复杂逻辑处理等。
数据输出模块103,用于将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果。
在一个实施例中,当计算单元对非零元素计算完毕得到计算结果后,相应的将该计算结果和之前得到的稀疏张量的索引进行匹配,以得到完整的运算结果并解压缩输出至主机存储,其中,该解压缩的过程可在由设备存储输出至主机存储的传输过程中完成,不占用额外的存储空间,提高了数据压缩效率。
由上述方案可知,在对稀疏张量进行计算时,单独存储并获取非零元素值进行计算,提高了稀疏张量的计算效率,同时,无需将稀疏张量的索引进一步进行存储,节省了存储空间。
在一个可能的实施例中,所述数据获取模块101具体用于:
获取稀疏张量数据,对所述稀疏张量数据进行压缩,得到压缩稀疏张量数据,所述压缩稀疏张量数据包括单独存储的非零元素以及对应的索引。
在一个可能的实施例中,所述数据获取模块101具体用于:
通过数据通道接收所述稀疏张量数据,在所述稀疏张量数据的传输过程中进行压缩。
在一个可能的实施例中,所述数据处理模块102具体用于:
将所述非零元素对应的元素数值从初级缓存转存至二级缓存空间中;
将所述元素数值从二级缓存空间转存至一级缓存空间中,并从所述一级缓存空间中读出所述元素数值至计算单元进行计算处理;
其中,所述一级缓存空间小于所述二级缓存空间,所述一级缓存空间和所述计算单元之间的硬件存储位置近于所述二级缓存空间和所述计算单元之间的硬件存储位置。
在一个可能的实施例中,所述数据输出模块103具体用于:
将所述计算结果和所述索引进行连续存储;或
记录所述计算结果和所述索引的数据起始位置和数据大小,根据所述数据起始位置和数据大小将所述将计算结果和所述索引进行关联。
在一个可能的实施例中,该装置还包括数据类型判断模块104,用于在所述确定所述稀疏张量数据中的非零元素以及索引之前,判断所述稀疏张量数据的运算是否包括元素之间的计算;
所述数据获取模块101具体用于:
如果所述稀疏张量数据的运算不包括元素之间的计算,则确定所述稀疏张量数据中的非零元素以及索引。
在一个可能的实施例中,所述数据获取模块101具体用于:
如果所述稀疏张量数据的运算包括元素之间的计算,则确定所述稀疏张量数据中的每一行的非零元素以及索引;
将当前行的索引对所述当前行的非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理,将计算结果和所述当前行的索引进行匹配。
图6为本发明实施例提供的一种设备的结构示意图,如图6所示,该设备包括处理器201、存储器202、输入装置203和输出装置204;设备中处理器201的数量可以是一个或多个,图6中以一个处理器201为例;设备中的处理器201、存储器202、输入装置203和输出装置204可以通过总线或其他方式连接,图6中以通过总线连接为例。
存储器202作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的稀疏张量计算方法对应的程序指令/模块(例如,稀疏张量计算装置中的尺寸信息确定模块101、入库位置确定模块102和控制指令输出模块103)。处理器201通过运行存储在存储器202中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的稀疏张量计算方法。
存储器202可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器202可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置203可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置204可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种稀疏张量计算方法,该方法包括:
获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引;
将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理;
将计算结果和所述索引进行匹配得到和所述稀疏张量数据对应的运算输出结果,输出所述运算输出结果。
在一个可能的实施例中,所述获取稀疏张量数据,确定所述稀疏张量数据中的非零元素以及索引包括:
获取稀疏张量数据,对所述稀疏张量数据进行压缩,得到压缩稀疏张量数据,所述压缩稀疏张量数据包括单独存储的非零元素以及对应的索引。
在一个可能的实施例中,所述获取稀疏张量数据,对所述稀疏张量数据进行压缩包括:
通过数据通道接收所述稀疏张量数据,在所述稀疏张量数据的传输过程中进行压缩。
在一个可能的实施例中,将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理包括:
将所述非零元素对应的元素数值从初级缓存转存至二级缓存空间中;
将所述元素数值从二级缓存空间转存至一级缓存空间中,并从所述一级缓存空间中读出所述元素数值至计算单元进行计算处理;
其中,所述一级缓存空间小于所述二级缓存空间,所述一级缓存空间和所述计算单元之间的硬件存储位置近于所述二级缓存空间和所述计算单元之间的硬件存储位置。
在一个可能的实施例中,所述将计算结果和所述索引进行匹配包括:
将所述计算结果和所述索引进行连续存储;或
记录所述计算结果和所述索引的数据起始位置和数据大小,根据所述数据起始位置和数据大小将所述将计算结果和所述索引进行关联。
在一个可能的实施例中,在所述确定所述稀疏张量数据中的非零元素以及索引之前,还包括:
判断所述稀疏张量数据的运算是否包括元素之间的计算;
相应的,所述确定所述稀疏张量数据中的非零元素以及索引包括:
如果所述稀疏张量数据的运算不包括元素之间的计算,则确定所述稀疏张量数据中的非零元素以及索引。
在一个可能的实施例中,如果所述稀疏张量数据的运算包括元素之间的计算,则确定所述稀疏张量数据中的每一行的非零元素以及索引;相应的,将所述非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理:
将当前行的索引对所述当前行的非零元素对应的元素数值转存至设定存储空间,对所述元素数值进行计算处理,将计算结果和所述当前行的索引进行匹配。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明实施例任意实施例所提供的稀疏张量计算方法中的相关操作.
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例各个实施例所述的方法。
值得注意的是,上述稀疏张量计算装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。