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

用于确定模型压缩率的方法、设备和程序产品

文献发布时间:2023-06-19 12:22:51


用于确定模型压缩率的方法、设备和程序产品

技术领域

本公开的实施例涉及人工智能领域,并且更具体地,涉及用于确定模型压缩率的方法、电子设备和计算机程序产品。

背景技术

人工智能技术近年来不断得到发展并且当前已经被广泛用于不同领域和实现中。机器学习模型可以被设计用于实现各种各样的人工智能任务,包括计算机视觉处理、语音识别、自然语言处理等。已训练的机器学习模型有时候需要被部署到具有处理和/或存储能力有限的设备中,诸如终端设备、边缘计算设备。机器学习模型的执行,特别是复杂或者被更精密配置的模型的执行将要求较高的处理和存储资源。

发明内容

本公开的实施例提供了一种用于确定模型压缩率的方案。

在本公开的第一方面,提供了一种用于确定模型压缩率的方法。该方法包括从与机器学习模型相关联的重要性值集合确定近零重要性值子集,重要性值集合中的相应重要性值指示机器学习模型的处理层的相应输入的重要程度,近零重要性值子集中的重要性值相比于重要性值集合中的其他重要性值更接近零;从近零重要性值子集中确定目标重要性值,目标重要性值对应于近零重要性值子集中重要性值幅度的转折点;确定重要性值集合中低于目标重要性值的重要性值占重要性值集合的比例;以及基于所确定的比例来确定用于机器学习模型的压缩率。

在本公开的第二方面,提供了一种电子设备。该电子设备包括至少一个处理器;以及存储有计算机程序指令的至少一个存储器,至少一个存储器和计算机程序指令被配置为,与至少一个处理器一起,使得电子设备执行动作。动作包括从与机器学习模型相关联的重要性值集合确定近零重要性值子集,近零重要性值子集中的重要性值相比于重要性值集合中的其他重要性值更接近零;从近零重要性值子集中确定目标重要性值,目标重要性值对应于近零重要性值子集中重要性值幅度的转折点;确定重要性值集合中低于目标重要性值的重要性值占重要性值集合的比例;以及基于所确定的比例来确定用于机器学习模型的压缩率。

在本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使设备实现以上第一方面的方法。

提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。

附图说明

通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。

图1示出了本公开实施例可以在其中被实施的环境的示意图;

图2示出了指示模型准确度相对于模型剪枝率的模型剪枝性能曲线;

图3示出了根据本公开的一些实施例的用于确定模型压缩率的信令过程的流程图;

图4示出了根据本公开的一些实施例的机器学习模型的处理层和剪枝后的处理层的示例;

图5A示出了根据本公开的一些实施例的机器学习模型的重要性值集合的分布的示例;

图5B示出了根据本公开的一些实施例的对重要性值执行对数变换后的结果的示例;

图5C示出了根据本公开的一些实施例的对数变换值的梯度计算结果的示例;

图5D示出了根据本公开的一些实施例的对梯度值分割的示例;以及

图6示出了可以用来实施本公开的实施例的示例设备的框图。

具体实施方式

下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。

在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

如本文中所使用的,术语“机器学习”指的是涉及高性能计算、机器学习和人工智能算法的处理。在本文中,术语“机器学习模型”也可以称为“学习模型”、“学习网络”、“网络模型”、或“模型”。“神经网络”或“神经网络模型”是一种深度学习模型。概括来说,机器学习模型能够接收输入数据并且基于输入数据执行预测和输出预测结果。

机器学习模型可以包括多个处理层,每个处理层具有多个处理单元。处理单元有时也称为卷积核。在卷积神经网络(CNN)的卷积层中,处理单元称为卷积核或卷积滤波器。每个处理层中的处理单元基于对应的参数对该处理层的输入执行相应变化。处理层的输出被提供作为下一处理层的输入。机器学习模型的第一个处理层的输入是机器学习模型的模型输入,最后一个处理层的输出是机器学习模型的模型输出。中间处理层的输入有时也称为机器学习模型提取的特征。机器学习模型的处理单元的全部参数的值形成机器学习模型的参数值集合。

机器学习主要可以划分为三个阶段,即训练阶段、测试阶段和应用阶段(也称为推理阶段)。在训练阶段,给定的机器学习模型可以使用大量的训练样本进行训练,不断迭代,直到机器学习模型能够从训练样本中获得一致的、与人类智慧所能够做出的推理类似的推理。机器学习模型通过训练,可以被认为能够从训练数据中学习从输入到输出之间的映射或关联关系。经过训练后,机器学习模型的参数值集合被确定。在测试阶段,可以利用测试样本对已训练的机器学习模型进行测试,以确定机器学习模型的性能。在应用阶段,机器学习模型可以被用于基于训练得到的参数值集合,对实际的输入数据进行处理,以给出对应的输出。

机器学习模型的训练和执行都要求较高的计算资源,包括处理和存储资源。对于复杂或者被更精密配置的模型而言,资源要求将更高。机器学习模型的训练可以由具有更多处理和存储资源的设备,诸如云计算环境来实现。然而,在一些情况下,出于诸如隐私保护、避免网络依赖、加快响应速度等诸多原因,已训练的机器学习模型可能需要被部署到资源有限的设备中,诸如被部署到用户终端、边缘计算设备等。为了使资源有限的设备能够运行机器学习模型,提出了可以在部署之前对机器学习模型执行压缩。

图1示出了本公开实施例可以在其中被实施的环境100的示意图。如图1所示,环境100包括模型训练设备110、模型压缩设备130以及模型应用设备140。

模型训练设备110被配置为执行模型训练,生成训练后的机器学习模型120。机器学习模型120的训练可以基于训练数据。机器学习模型120可以是能够处理输入并且提供对应的输出的任何模型,可以用于执行诸如计算机视觉处理、语音处理、自然语言处理等,实现诸如对象识别、异常检测、语音识别、分类等任务。

模型训练设备110可以具有能够支持模型训练的计算能力,包括相应的处理和存储资源。在一些示例中,模型训练设备110例如可以被包括在计算环境102,诸如云计算环境。在另外的示例中,模型训练设备110也可以是独立的计算设备。

模型训练设备110可以将已训练的机器学习模型120提供给模型压缩设备130。例如,模型训练设备110可以将机器学习模型120的模型配置以及训练得到的参数值集合发送给模型压缩设备130。模型压缩设备130用于执行机器学习模型120的压缩,以缩减机器学习模型120的尺寸,得到压缩后的机器学习模型150。压缩后的机器学习模型150可以被部署到模型应用设备140以用于实现对应的处理。

模型应用设备140可以是具有计算能力的任何计算设备。在一些情况中,模型应用设备140可能是处理和/或存储资源有限的计算设备,例如是用户设备,诸如移动电话、膝上型计算机、台式计算机、平板计算机等,或者可能是其他计算终端,诸如物联网(IoT)的边缘计算设备、边缘网关等。在模型应用设备140的资源有限的情况下,对机器学习模型执行压缩有助于降低在模型应用阶段对计算和/或存储资源的消耗。

模型压缩设备130可以是具有计算能力的任何计算设备,其可以是独立计算设备(如图所示),也可以与模型训练设备110一起被包括在计算环境102中。

在一些情况中,模型应用设备140已被部署有机器学习模型。已部署的机器学习模型150可以是当前训练的机器学习模块的先前版本,用于实现相同或类似任务。也就是说,模型应用设备140要应用的机器学习模型可以不断迭代更新。模型应用设备140和/或其他数据源可以向计算环境102,例如向计算环境102中的模型训练设备110提供训练数据124,以进一步用于支持模型的迭代和更新。这意味着从模型训练设备110到模型应用设备140的模型部署可能不断发生。

当然,应当理解,这样的模型迭代和更新仅是一种示例。在其他示例中,由模型训练设备110训练的机器学习模型120可以是全新的模型。虽然图1中仅示出了一个模型应用设备,在一些示例中,压缩后的机器学习模型120可以被部署到多个模型应用设备。

应当理解,图1中所示的设备的数目和布置仅是示意性的,而不应当被理解为对本申请方案的限制。

当前存在很多模型压缩技术用于实现机器学习模型的压缩。一种模型压缩技术包括模型剪枝技术。模型剪枝(有时也称为网络剪枝)技术通过去除或修剪掉机器学习模型中被认为不重要的输入,从而降低模型尺寸,特别是参数值尺寸,因为不需要相应的参数值来处理输入。模型尺寸的降低还能进一步提高模型处理速度。由此,压缩后的机器学习模型对存储资源和处理资源的消耗都会降低。

在此,用于压缩机器学习模型的压缩率反映机器学习模型压缩的程度,可以被确定为压缩后的模型尺寸与压缩前的模型尺寸的比率。压缩率约低,模型压缩程度越高。在模型剪枝的场景下,模型剪枝率指的是从机器学习模型中删除的输入数量与模型剪枝之前机器学习模型中的总输入数量的比率,这里的输入可以包括第一个处理层的输入以及后续的处理层的输入的总和。因此,在模型剪枝的场景下,压缩率指的是模型剪枝之后机器学习模型中剩余的输入数量与模型剪枝之前机器学习模型的总输入数量的比率。也就是说,模型剪枝率越高,对应的压缩率越低,这两个比率可以相互转换。

通常,被修剪掉的输入越多,压缩后的机器学习模型的尺寸越小,对模型处理速度也会更快。然而,模型尺寸降低会导致模型的性能下降,使得模型处理的准确度降低。因此,在压缩率和模型准确度之间存在权衡。

对于一个给定的示例机器学习模型,图2示出了指示模型准确度相对于模型剪枝率的模型剪枝性能曲线202。模型剪枝率越高,意味着从机器学习模型中删除更多输入,压缩率越低。可以看出,模型剪枝率以及相应的压缩率与准确度损失并不是呈现线性分布。在图2的示例中,在模型剪枝率达到40%以后,模型准确度出现快速下降。

当前很多研究关注于模型压缩技术本身。对于模型剪枝率与准确度损失之间的关系,大多数通过不断迭代尝试的方式,每次手动预设一个模型剪枝率或压缩率,然后在执行对应的模型剪枝之后再确定压缩后的机器学习模型的准确度。每次模型剪枝之后,还需要执行机器学习模型的重新训练(retrain)和重新调整(fine tune)过程。最后,通过比较不同模型剪枝率/压缩率与对应的准确度来选择一个较好的模型剪枝率/压缩率。

根据本公开的实施例,提出了一种用于确定模型压缩率的方案。该方案能够针对给定机器学习模型,提前确定适合用于压缩机器学习模型的压缩率。在该方案中,从与机器学习模型相关联的重要性值集合中接近零的重要性值子集中确定目标重要性值,目标重要性值对应于近零重要性值子集中重要性值幅度的转折点。然后,确定重要性值集合中低于目标重要性值的重要性值占重要性值集合的比例。基于所确定的比例来确定机器学习模型的压缩率。

以此方式,可以不需要进行非常耗时的训练过程就可以提前获知在不损失模型性能前提下的最佳压缩率。与需要反复训练和调整来实现模型压缩的方式相比,可以在提取确定的最优压缩率的情况下再执行模型压缩,总体资源消耗更少且延时更低。

图3示出了根据本公开的实施例的用于确定模型压缩率的过程300的流程图。过程300可以由图1的模型压缩设备130来实现。

在310,模型压缩设备130从与机器学习模型120相关联的重要性值集合中确定近零重要性值子集。机器学习模型120的重要性值集合中的相应重要性值指示机器学习模型120的处理层的相应输入的重要程度。机器学习模型120可以是经过训练后的机器学习模型,具有确定的重要性值。

重要性值可以通过多种方式来确定和表示。在一些实施例中,重要性值包括缩放因子(scaling factor),缩放因子可以在机器学习模型120的训练过程中被确定。例如,在利用稀疏性正则化(sparsity regularization)进行模型训练时,可以同时引入对处理层的输入的缩放因子的确定。在一些实施例中,重要性值还可以由被施加到输入的参数值,特别是权重,来确定。例如,重要性值可以被确定为权重值的绝对值。

在一些实施例中,重要性值集合包括机器学习模型120的每个处理层的输入对应的重要性值。在一个实施例中,第一个处理层的输入可以不被考虑。备选地或附加地,重要性值集合包括机器学习模型120的复杂处理层的输入,例如具有较多参数值的处理层的输入对应的重要性值。这样的处理层的示例例如包括用于执行卷积操作的卷积层,全连层等等。

图4示出了机器学习模型120的处理层410的处理。如图4所示,处理层410要处理N个输入412-1至412-N(统称为或单独称为输入412)。输入412可以是任何要处理的数据或信息。处理层410具有用于处理相应输入412的处理单元,以获得对应的M个输出414-1至414-M(统称为或单独称为输出414)。N和M可以是大于等于1的正整数。每个输入414与一个或多个输入412关联。相关联的输入412在模型处理过程中用于确定对应的输出414。输入412与输出414的关联取决于模型配置。图4示出了全连接的示例,其中一个输出414与全部输入412关联。在其他示例中,一个输出414可能与一个或一些输入412关联。

图4中还示出了每个输入412对应的重要性值。通常,输入412的重要性值越大,意味着输入412更重要,并且在一些情况下该输入412对处理层的输出414的贡献可能也越大。在所确定的重要性值中,存在一些较小的重要性值,因此应用这些重要性值对应的输入412的重要性较低。图4仅示出了机器学习模型120的一个处理层410。机器学习模型120可以包括多个类似的处理层。

模型压缩设备130从机器学习模型120的重要性值集合中确定接近于零的重要性值用于组成近零重要性值子集。在本文中,“接近于零”指的是近零重要性值子集中的重要性值相比于重要性值集合中的其他重要性值更接近零。在一些实施例中,可以设置一个阈值,并且将小于该阈值的重要性值包括到近零重要性值子集中。该阈值可以被设置为一个较为保守的值,例如相对较大的值。

在一些实施例中,为了方便快速确定近零重要性值子集,模型压缩设备130可以确定重要性值集合的分布,并且基于分布来确定近零重要性值子集。重要性值集合的分布呈现重要性值集合中相同重要性值出现的次数。图5A示出了机器学习模型120的重要性值集合的示例分布510。根据分布510可以看出在重要性值集合中接近于零的位置存在较多重要性值。可以基于分布510确定一个靠近零的阈值,小于该阈值的重要性值被包括到近零重要性值子集中。

继续参考回图3,在320,模型压缩设备130从近零重要性值子集中确定目标重要性值。该目标重要性值用于确定模型压缩设备130对机器学习模型120的压缩率。期望最终确定的压缩率能够实现最大限度的模型压缩,同时不会导致模型准确度的显著损失。在本文公开的实施例中,目标重要性值被确定为对应于近零重要性值子集中重要性值幅度的转折点。这样的转折点意味着近零重要性值子集中小于该目标重要性值的重要性值的变化趋势平稳,而大于目标重要性值的重要性值开始有显著变化。

由于近零重要性值子集中重要性值都较为接近零,绝对幅度变化不明显,在一些实施例中,模型压缩设备130可以将近零重要性值子集中的重要性值转换到对数空间中进行分析。具体地,模型压缩设备130可以对近零重要性值子集中的各个重要性值执行对数变换,获得对应的对数变换值集合,其中包括每个重要性值对应的对数变换值。对数变换可以增大接近于零的重要性值,同时可以稳定重要性值之间的方差。

可以采用适当的对数变换方法。在一些实施例中,模型压缩设备130在执行对数变换时,可以采用大尺寸缩放对数投影LSLP。具体地,模型压缩设备130可以首先将近零重要性值子集中的重要性值放大预定倍数,然后再执行对数变换。在一些实施例中,还可以在放大预定倍数后的重要性值基础上增加预定偏置,然后对得到的结果执行对数变换。以下公式(1)示出了对近零重要性值子集中的重要性值执行对数变换的一个示例:

γ′=log(Mγ+α) 公式(1)

其中γ表示重要性值,M表示放大倍数,α表示偏置,log()表示对数变换,并且γ′表示对数变换值。放大倍数M和偏置α可以是预定值。对数变换可以使用任何适当的底数。

应当理解,以上仅给出了对数变换的一些示例。在其他实施例中,还可以采用其他对数变换方式和/或其他数据变换方式。

在一些实施例中,为了便于观察和便于后续处理,模型压缩设备130还可以将对数变换值集合中的对数变换值按升序或降序排序。图5B示出了对近零重要性值子集中的重要性值执行对数变换后的对数变换值的示例。在图5B的示例中,对应的对数变换值按升序排序并且被逐一索引。每个对数变换值索引将索引到一个对数变换值。可以知道,每个对数变换值对应近零重要性值子集中的一个重要性值。

在对数变换的基础上,模型压缩设备130可以从对数变换值集合中确定一个目标对数变换值。目标对数变换值也对应于对数变换值集合中对数变换值幅度的转折点。这样的转折点意味着对数变换值集合中小于该目标对数变换值的对数变换值的变化趋势平稳,而大约目标对数变换值的对数变换值开始有显著变化。例如,目标对数变换值可以被确定为对数变换值中比目标对数变换值小的第一对数变换值与比对数变换值大的第二对数变换值之间的第一差异较大,这样的第一差异会大于以下两个差异:对数变换值集合中比目标对数变换值小的两个对数变换值之间的第二差异,以及对数变换值集合中比目标对数变换值大的两个对数变换值之间的第三差异。换言之,目标对数变换值与前后目标对数变换值的差异显著不同。

在一些实施例中,模型压缩设备130可以从对数变换值集合确定与第一个这样的转折点对应的目标对数变换值。在图5B的示例中,可以看出在虚线522处出现了第一个转折点,该转折点大约对应于对数变换值索引在2000附近的对数变换值。应当理解,如果按降序对对数变换值进行排序,那么模型压缩设备130可以从对数变换值集合确定与最后一个这样的转折点对应的目标对数变换值。

为了从对数变换值集合中准确定位期望的目标对数变换值,在一些实施例中,模型压缩设备130确定排序后的对数变换值的变化趋势,并且基于所确定的变化趋势来确定对应于转折点的目标对数变换值。对数变换之的变化趋势的确定例如可以通过计算排序后的对数变换值的梯度来确定。例如,图5C示出了对从图5B所示的对数变换值组成的曲线计算梯度,确定相对于各个对数变换值对应的梯度值,其指示对应对数变换值的变化趋势。通过梯度值可以看出对数变换值出现显著变化的转折点,特别是第一个转折点,例如在图5C的虚线532处。

在一些实施例中,在基于梯度值来定位这样的转折点时,模型压缩设备130可以利用自适应阈值分割算法来确定转折点处对应的对数变换值的索引,其索引到的对数变换值被确定为目标对数变换值。自适应阈值分割算法可以包括诸如基于核变换的自适应阈值分割算法以及任何其他适当的阈值分割算法。自适应阈值分割算法的使用可以更准确定位转折点。

图5D示出了在应用自适应阈值分割算法之后,将与对数变换值对应的梯度值分割到多个区段中,各个区段的分界线例如分别由虚线542-1至542-4指示。模型压缩设备130由此可以在从各个分界线中确定最小的区段的上限值,例如由分界线542-1指示的上限值。由此,模型压缩设备130可以将分界线542-1对应的对数变换值索引对应的对数变换值确定为目标对数变换值,并进一步将目标对数变换值对应的重要性值确定为目标重要性值。

在一些实施例中,模型压缩设备130也可以不计算梯度值,而是将自适应阈值分割算法应用于对数变换值,从而通过分割对数变换值来类似确定目标对数变换值,进而确定对应的目标重要性值。

在从重要性值集合中确定目标重要性值之后,在过程300的330,模型压缩设备130确定重要性值集合中低于目标重要性值的重要性值占重要性值集合的比例。在340,模型压缩设备130基于所确定的比例来确定用于机器学习模型120的压缩率。

在确定目标重要性值之后,可以确定对应于压缩的阈值或边界值。通常,在利用模型剪枝技术来实现模型压缩的示例中,期望删除机器学习模型中出现的重要性低的输入。因此,比目标重要性值低的重要性值在全部重要性值中所占的比例可以对应于模型剪枝率,即反映要被修剪掉的输入的比率。相应地,机器学习模型120的压缩率可以被确定为100%与所确定的比例之差。

例如,在图5D的示例中,假设确定的目标对数变换值是索引为2115的值,目标重要性值也是索引为2115的值。比目标重要性值低的重要性值是索引值小于2115的重要性值,因为在这个示例中按升序排序重要性值。由此,假设重要性集合的总数为5500,可以确定低于目标重要性值的重要性值占重要性值集合的比例为约38%,这个值可以被认为是模型剪枝率。相应地,机器学习模型120的压缩率为72%。

在一些实施例中,基于所确定的压缩率,模型压缩设备130可以利用模型剪枝技术来实现模型压缩。因此,模型压缩设备130可以确定低于目标重要性值的重要性值对应的机器学习模型120中的输入。模型压缩设备130可以将机器学习模型120的参数值集合中删除所确定的输入对应的参数值。这样,机器学习模型120的参数值集合可以被缩减,从而实现了模型压缩。在一些情况下,如果机器学习模型120的处理单元要处理的输入都被删除,该处理单元也可以被删除。

参考回图4,其中示出了通过从处理层410中删除较小的重要性值(即小于目标重要性值的重要性值)对应的输入后,获得处理层420。由于处理层的输入被删除,在剪枝后的处理层420中,对应的输入不需要再被处理,例如输入412-2和412-4不需要被处理。对于机器学习模型120的每个处理层,均可以执行类似的修剪。

在一些实施例中,在执行模型剪枝后,可以再次训练机器学习模型120,实现模型重新调整,从而获得压缩后的机器学习模型150。由于先前执行的模型压缩所基于的压缩率是自动确定的最佳压缩率,根据本公开的实施例,不需要重复迭代多次训练和压缩就能够获得满意的模型压缩结果。

图6示出了可以用来实施本公开的实施例的示例设备600的示意性框图。设备600可以用于实现图3的过程300。设备600可以被实现为或被包括在图1的模型压缩设备130。

如图所示,设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的计算机程序指令或者从存储单元608加载到随机访问存储器(RAM)603中的计算机程序指令,来执行各种适当的动作和处理。在RAM 603中,还可存储设备600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。

设备600中的多个部件连接至I/O接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理单元601执行上文所描述的各个方法和处理,例如过程300。例如,在一些实施例中,过程300可被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,诸如非瞬态计算机可读介质,诸如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由CPU 601执行时,可以执行上文描述的过程300的一个或多个步骤。备选地,在其他实施例中,CPU 601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程300。

本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。

应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。

以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

技术分类

06120113269355