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

一种量化参数确定方法、混合精度量化方法以及装置

文献发布时间:2023-06-19 19:27:02


一种量化参数确定方法、混合精度量化方法以及装置

技术领域

本公开涉及人工智能技术领域,尤其涉及深度学习以及自动驾驶等技术领域。

背景技术

目前,在训练模型时通常会选择精度较高的数据格式,如FP64(双精度浮点数)、FP32(单精度浮点数)等等,以得到准确度较高的模型。但在实际应用中,由于对于模型处理数据的快速高效需求,通常会对训练得到的模型进行模型推理,如降低模型中参数的数据精度等以对模型进行简化,来提高模型运行速率。

发明内容

本公开提供了一种量化参数确定方法、混合精度量化方法以及装置,以提高量化精度。

根据本公开的一方面,提供了一种量化参数确定方法,包括:

获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。

根据本公开的另一方面,提供了一种混合精度量化方法,包括:

确定原始模型中各网络层量化后数据格式,得到目标模型;

基于所述目标模型中各网络层的量化参数,对所述目标模型进行量化,得到量化后模型;所述量化参数通过以下步骤预先获取:获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。

根据本公开的另一方面,提供了一种量化参数确定装置,包括:

计算图获取模块,用于获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

精度转换节点确定模块,用于基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

量化参数确定模块,用于针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。

根据本公开的另一方面,提供了一种混合精度量化装置,包括:

目标模型获取模块,用于确定原始模型中各网络层量化后数据格式,得到目标模型;

量化模块,用于基于所述目标模型中各网络层的量化参数,对所述目标模型进行量化,得到量化后模型;所述量化参数通过以下步骤预先获取:获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。

根据本公开的另一方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一所述的量化参数确定方法和/或混合精度量化方法。

根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述任一所述的量化参数确定方法和/或混合精度量化方法。

根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述任一所述的量化参数确定方法和/或混合精度量化方法。

应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本公开的限定。其中:

图1是根据本公开提供的量化参数确定方法的第一实施例的示意图;

图2是根据本公开提供的量化参数确定方法的一种具体实例的示意图;

图3是根据本公开提供的混合精度量化方法的第一实施例的示意图;

图4是根据本公开提供的量化参数确定装置的第一实施例的示意图;

图5是根据本公开提供的混合精度量化装置的第一实施例的示意图;

图6是用来实现本公开实施例的量化参数确定方法和/或混合精度量化方法的电子设备的框图。

具体实施方式

以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

目前,神经网络模型在各行各业有着广泛应用。如,实际应用中会使用神经网络模型来进行人脸识别、路线规划以及内容推荐等等。

神经网络模型是通过模型训练得到的。模型训练指的是从已有数据中学习到某种能力,如人脸识别、内容推荐等等。因此,为了使得训练得到的模型准确性较高,在训练过程中通常会使用精度较高的数据格式,如FP32、FP64作为神经网络模型中输入、输出以及各层参数的数据格式。

但在实际应用中,由于模型运行平台的计算资源限制以及对模型高速运行等的需求,通常需要对模型进行简化后使用。对模型进行简化的过程即为模型推理,也称模型量化。

基于混合精度的模型推理是一种重要的模型推理方法,指的是将模型中的高精度的数据格式,如,FP64、FP32转化为混合精度,如采用INT8+FP16或INT8+FP32作为模型中的输入、输出以及各层参数的数据格式。基于混合精度的模型推理方法具有较高的推理速率以及较好的效果,在各领域有着广泛应用。

例如,在自动驾驶的车端侧推理中,感知、地图、定位、PNC(Planning andControl,规划与控制)等各个模块协同运行在资源有限的计算平台上,为了保证自动驾驶系统的算法效果以及提高推理速率,会采用基于混合精度的模型推理。

混合精度推理可以减少对计算资源的占用和提高整体的推理效率,但是数值位数的减少会不可避免的导致模型精度降低。示例性的,int8为整型数据,一个int8数据长度为8bit(比特),而FP32为浮点数,一个FP32数据长度为32个bit,可以表示更高精度的数据。将FP32转化为Int8,即仅保留浮点数的整数部分,会带来极大的精度损失。

因此,如何保证模型进行混合精度推理时的模型效果是端侧模型推理优化中的一个重要问题。

相关技术中,通常会使用后训练量化方法(Post-training Quantization,PTQ)方法或者感知量化训练算法来降低模型推理中的精度量化损失,即降低将训练好的模型的参数,激活值等从高精度转化成低精度过程中的量化损失。

后训练量化方法是在模型参数确定后,输入若干具有代表性的数据样本至模型,并统计模型的输出数据分布,再通过如MinMax(最小最大值)、MSE(Mean Square Error,均方误差)、KL散度、Percentile(百分位数)等方法获取使输出数据精度量化信息损失最小的量化参数。量化参数即模型原始数据格式与模型推理后得到的模型数据格式之间的转换系数。

感知量化训练算法则在模型训练过程中插入量化节点信息,让卷积、全连接层等结构进行量化-反量化操作,再通过STE算法更新权重,使模型在训练过程中适应量化带来的精度损失。

但上述方法是仅仅基于模型中单一层的输出数据确定量化参数,并未考虑各网络层之间的影响,一定程度上影响了量化精度。示例性的,在实际应用中,由于算法实现方式的不同,有些网络层采用精度更高的数据格式比采用精度较低的数据格式计算速度更快。例如,对于某些层可能FP16的计算速度比int8的计算速度更快,因此,对模型进行模型推理后得到的模型会出现一些层采用int8的数据格式计算,一些层采用FP16的数据格式计算。因此,会出现采用int8数据格式的网络层的输出数据会输入至采用FP16的网络层的情况。对于这种情况,需要将int8数据转换为FP16格式,这一过程往往会带来精度损失。示例性的,FP16数据在输入至使用int8进行计算的数据层时需要进行数据格式的转换,由于int8数据精度较低,即使将int8转换回FP16格式的数据,也无法达到输入数据的精度。相关技术中在进行量化时并未考虑该精度损失,导致量化精度依旧较低。

为了提高量化精度,本公开提供了一种量化参数确定方法、混合精度量化方法、装置、电子设备及存储介质。下面首先对本公开提供的量化参数确定方法进行示例性说明。

本公开提供的量化参数确定方法可以应用于任意具有量化参数确定功能的电子设备中,上述电子设备可以是服务器、计算机以及移动终端等等,本公开对此不做具体限定。

如图1所示,图1为根据本公开提供的量化参数确定方法的第一实施例的示意图,具体可以包括以下步骤:

步骤S101、获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

步骤S102、基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

步骤S103、针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。

应用本公开实施例,在确定计算图中的内部节点的量化参数时,考虑相应计算图中精度转化节点处的精度损失,即考虑到模型内采用不同数据格式的节点之间的数据转换带来的精度损失,从而可以使得精度量化损失达到全局以及局部最优,提高了量化精度。

下面对上述步骤S101-S103进行示例性说明:

上述目标模型可以是对训练得到的原始模型进行模型推理得到模型。也就是说,在上述步骤S101之前,可以对原始模型进行模型推理,得到目标模型。具体的,可以使用MNN(Mobile Neural Network,一个轻量级的深度神经网络推理引擎)框架、TensorRT推理引擎等对原始模型进行推理。上述原始模型为采用精度较高的数据格式训练得到的模型。如为使用FP32、FP64训练得到的模型。下面以使用TensorRT推理引擎对原始的模型进行推理为例,对本公开提供的量化参数确定方法进行示例性说明。

使用TensorRT推理引擎对原始模型进行模型推理的过程中,会对模型中各网络层采用的数据格式进行选择,通常会改变原始模型中各网络层的数据格式。确定各网络层采用的数据格式后,即可根据各网络层采用的数据格式对网络层进行划分,得到上述各计算图。具体的,数据格式相同的网络层构成一个计算图。如,采用int8数据格式的网络层构成int8计算图,采用FP16数据格式的网络层构成FP16计算图。计算图中的节点即表示网络层。

作为一种具体实施方式,还可以通过以下步骤得到上述计算图:

步骤S111、合并目标模型中相邻且数据格式相同的网络层,得到合并模型;

步骤S112、根据数据格式,将所述合并模型划分为多个计算图。

TensorRT支持int8和FP16的计算,并对于网络结构进行了重构,把一些能够合并的运算合并在了一起,针对GPU(graphics processing unit,图形处理器)的特性做了优化。

具体的,神经网络中通常包含conv(卷积)层、BN层(Batch Normalization,归一化)以及Relu(激活函数)层等等。步骤S111中,TensorRT会将conv层、BN层以及Relu层合并为一个层。同时,TensorRT还会对神经网络中输入为相同数据格式且执行相同操作的层进行合并。作为一种具体实施方式,可以是将相邻且数据格式以及执行的操作相同的网络层进行合并。通过对上述各网络层进行合并可以得到多个融合层,各融合层构成合并模型。

之后可以针对合并模型中的各融合层进行数据格式的选择。这样,通过对模型中的各网络层进行层融合,合并数据格式相同的网络层,得到合并模型,并基于合并模型选择各网络层采用的数据格式,可以提高数据格式选择的速度。

TensorRT对各网络层进行合并得到各融合层后,即可对各融合层的采用的数据格式进行选择。示例性的,可以通过遍历的方式对各融合层的数据格式进行选择,并选择模型执行速度最快的数据格式作为融合层的数据格式。

之后可以基于各融合层的数据格式,合并数据格式相同的融合层,将上述合并模型划分为多个计算图。示例性的,TensorRT进行模型推理时可能使用cublas、cudnn等算法。由于cublas、cudnn等算法的实现效率的区别,有些融合层会选择FP16的数据格式,有些融合层会选择int8的数据格式。各数据格式为int8的融合层构成精度为int8的计算图,int8计算图中的各节点即为采用的数据格式为int8的融合层,各数据格式为FP16的融合层构成精度为FP16的计算图。当然,也可以将相邻且数据格式相同的融合层构成计算图,从而得到多个int8计算图以及FP16计算图,本公开对此不做具体限定。

上述各计算图中均可包含多个节点,为多输入多输出结构,即可以包括多个输入节点以及多个输出节点。上述输入节点指的是输入数据来自其他计算图的节点,输出节点则指的是下一节点为其他计算图节点的节点,即将数据输出至其他计算图的节点。各计算图的内部均为同一数据格式的计算,但在计算图的输出节点,需要对数据的格式进行转换,并输入至其他数据格式的计算图中。本文中,将各计算图的输出节点称为精度转换节点,将计算图中除精度转换节点外的其他节点称为内部节点。

示例性的,若得到的计算图为int8计算图以及FP16计算图。对于int8计算图,其内部均为int8计算,但在int8计算图的精度转换节点,会将int8转换为FP16。由于int8为8位整型数据,而FP16为浮点型数据,因此,在将int8数据转换为FP16数据的过程中会传递int8计算图的输入节点处将高精度数据格式数据转换为int8数据格式带来精度损失。因此,本实施例中,可以在计算图中各节点的量化参数时,考虑精度转换节点处的精度损失,以尽可能地降低该精度损失。

将原始模型中的FP64或FP32转换为FP16或FP32基本不会给模型引入精度损失。但由于int8数据为整型数据,将浮点型数据转换为整型数据,由于数据位数以及类型均相差较大,会造成较大的精度损失。因此,作为一种实施方式,在计算量化参数时,可以仅针对整型数据计算图中的各节点计算量化参数,以在满足模型推理需求的同时,减少数据计算量。

以int8计算图为例,在计算int8计算图中的各节点的精度量化损失时,可以首先计算各节点自身的精度量化损失。

具体的,可以基于各节点的量化参数、原始输出数据以及所述节点的数据格式,求解所述节点的精度量化损失;所述原始输出数据为通过上述原始模型得到的上述节点的输出数据,数据格式与训练原始模型时采用的数据格式相同,如为FP64、FP32等等。上述量化参数的初始值可以针对计算图中的不同节点进行预设,上述不同节点的预设量化参数可以相同也可以不同,本公开中对此不做具体限制。

示例性的,可以通过以下公式计算上述各节点的精度量化损失:

该公式中,L

如上所述,本公开中在计算各内部节点的量化参数时,会考虑到精度转换节点的精度量化损失。具体的,在求解计算图中除精度转换节点外的内部节点的量化参数时,可以基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,构建所述内部节点的损失函数;并最小化所述损失函数,得到所述内部节点的量化参数。

具体的,int8计算图中各内部节点的损失函数可以是:

L

该公式中,L

针对计算图中除精度转换节点外的内部节点的损失函数进行最小化,即可得到各内部节点的量化参数。这样,通过基于计算图中内部节点本身的精度量化损失以及计算图的精度转换节点的精度量化损失构建内部节点的损失函数,并对其进行最小化求解量化参数,可以使得计算图的精度量化损失以及计算图中的各内部节点的精度量化损失达到最小,尽可能地提高了量化精度。

精度转换节点处的量化损失函数即为其自身的精度量化损失,对该量化损失函数进行最小化即可求得精度转换节点的量化参数,这样,可以使得计算图的输出处精度量化损失最小,提高计算图全局的量化精度。

求解得到上述各计算图中的各节点的量化参数后,即可继续基于上述量化参数继续对模型进行基于混合精度的模型推理,得到可以实际使用的模型。

如图2所示,图2为根据本公开提供的量化参数确定方法的一种具体实例示意图。图2中,模型包括两种数据格式的计算图,分别为int8计算图以及FP16计算图。其中,int8计算图中包含两个节点CONV0以及CONV1,FP16计算图中包含两个节点CONV2以及CONV3。CONV0的原始输出数据为q0,CONV1的原始输出数据为q1,CONV2的原始输出数据为q2。

在计算各节点的量化参数时,首先可以基于各节点的输出数据求解节点自身的精度量化损失,以求解节点CONV0的精度量化损失为例,可以通过以下公式计算:

之后,可以针对计算图中非精度转换节点的节点,基于该节点的精度量化损失以及精度转化节点的精度量化损失,求解该节点的量化参数。以int8计算图为例,int8计算图中的精度转换节点为CONV1,非精度转换节点的节点为CONV0。

因此,求解CONV0的量化参数即对L

应用本公开实施例,在确定每个网络层节点的量化参数时,还会考虑对应的精度转换节点的精度量化损失,使两者的精度量化损失之和最小,从而提高量化精度。

根据本公开的实施例,本公开还提供了一种混合精度量化方法,如图3所示,上述方法可以包括:

步骤S301、确定原始模型中各网络层量化后数据格式,得到目标模型;

步骤S302、基于所述目标模型中各网络层的量化参数,对所述目标模型进行量化,得到量化后模型。

所述量化参数通过以下步骤预先获取:获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。

该方法的具体实施过程可以参见上文描述,此处不再赘述。

根据本公开的实施例,本公开还提供了一种量化参数确定装置,如图4所示,上述装置可以包括:

计算图获取模块401,用于获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

精度转换节点确定模块402,用于基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

量化参数确定模块403,用于针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。

在一种可能的实施例中,上述装置还包括:

合并模块,用于合并目标模型中相邻且数据格式相同的网络层,得到合并模型;

所述获取基于目标模型中各网络层的数据格式确定的多个计算图,包括:

根据数据格式,将所述合并模型划分为多个计算图。

在一种可能的实施例中,所述量化参数确定模块,用于针对各所述计算图,基于所述精度转换节点的精度量化损失,确定所述精度转换节点的量化参数,作为所述精度转换节点所表示的网络层的量化参数。

在一种可能的实施例中,上述装置还包括:

数据格式改变模块,用于改变原始模型中各网络层的数据格式,得到目标模型;

所述基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,包括:

基于所述内部节点的量化参数、所述内部节点的原始输出数据以及所述内部节点的数据格式,确定所述内部节点的精度量化损失;所述原始输出数据为通过所述原始模型得到的所述内部节点的输出数据;所述量化参数初始时为预设值;

基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数。

在一种可能的实施例中,所述基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,包括:

基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,构建所述内部节点的损失函数;所述损失函数与所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失正相关;

最小化所述损失函数,得到所述内部节点的量化参数。

根据本公开实施例,还提供了一种混合精度量化装置,如图5所示,包括:

目标模型获取模块501,用于确定原始模型中各网络层量化后数据格式,得到目标模型;

量化模块502,用于基于所述目标模型中各网络层的量化参数,对所述目标模型进行量化,得到量化后模型;所述量化参数通过以下步骤预先获取:获取基于目标模型中各网络层的数据格式确定的多个计算图,其中,每个所述计算图中的各网络层的数据格式相同,且至少两个所述计算图中的网络层的数据格式不同;

基于各所述计算图,确定各所述计算图中的精度转换节点;所述精度转换节点为将数据输出至其他计算图的节点;

针对各所述计算图中除所述精度转换节点外的各内部节点,基于所述内部节点的精度量化损失以及所述精度转换节点的精度量化损失,确定所述内部节点的量化参数,作为所述内部节点所表示的网络层的量化参数。。

本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。

根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。

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

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

计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如量化参数确定方法和/或混合精度量化方法。例如,在一些实施例中,量化参数确定方法和/或混合精度量化方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由ROM 602和/或通信单元609而被载入和/或安装到设备600上。当计算机程序加载到RAM 603并由计算单元601执行时,可以执行上文描述的量化参数确定方法和/或混合精度量化方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行量化参数确定方法和/或混合精度量化方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

相关技术
  • 一种神经网络权重量化方法和神经网络权重量化装置
  • 一种量化参数确定方法、装置及一种视频编码方法、装置
  • 一种量化参数确定方法及相关装置
技术分类

06120115918332