CN116472538A - 用于量化神经网络的方法和系统 - Google Patents
用于量化神经网络的方法和系统 Download PDFInfo
- Publication number
- CN116472538A CN116472538A CN202080104047.6A CN202080104047A CN116472538A CN 116472538 A CN116472538 A CN 116472538A CN 202080104047 A CN202080104047 A CN 202080104047A CN 116472538 A CN116472538 A CN 116472538A
- Authority
- CN
- China
- Prior art keywords
- neural network
- vector
- quantization parameter
- quantization
- weight vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3059—Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
提供了一种用于确定混合精度量化参数来量化神经网络系统的方法和计算系统。所述方法包括:基于所述神经网络的所述权重向量的大小来确定量化参数向量;对于训练数据集的多个训练向量中的每一个,基于所述训练向量和所述量化参数向量来评估第二损失函数,并且修改所述权重向量和所述量化参数向量以最小化所述第二损失函数的输出。所述量化参数向量的所述量化参数中的每一个约束量化神经网络的一层的量化权重向量对应于所述神经网络的相应层的权重向量的大小。
Description
技术领域
本发明涉及用于确定神经网络的混合精度量化参数的系统和方法。
背景技术
近年来,神经网络在广泛的应用中取得了显著的成果。因而,广泛应用于包括移动设备和嵌入式设备在内的许多不同硬件平台。在这些类型的设备中,硬件约束可能会限制神经网络的有效性,从而无法高效地实现高精度。
量化方法可以减少神经网络中的内存占用和推断时间。量化将神经网络中的数据从大浮点表示压缩到较小的定点表示。降低位宽量化可实现更好的优化。但是,将位宽降低过多可能会导致精度降低过多。
发明内容
本发明的一个目的是提供一种用于确定神经网络的混合精度量化参数的方法,该方法允许改进神经网络的性能(例如改进神经网络的质量和效率),例如通过减少内存占用和操作复杂性(通过优化量化参数)来进行改进。
上述和其它目的通过独立权利要求的特征来实现。进一步的实施形式在从属权利要求、具体说明和附图中显而易见。
根据第一方面,提供了一种用于确定混合精度量化参数来量化神经网络的方法。所述神经网络包括多个层。每个层与包括多个浮点数据值的权重向量相关联。所述神经网络在训练数据集上训练,并且选择所述权重向量以最小化与所述神经网络相关联的第一损失函数。所述方法包括:基于所述权重向量的大小来确定量化参数向量;对于训练数据集的多个训练向量中的每一个,基于所述训练向量和所述量化参数向量来评估第二损失函数,并且修改所述权重向量和所述量化参数向量以最小化所述第二损失函数的输出。所述量化参数向量的所述量化参数中的每一个约束量化神经网络的一层的量化权重向量对应于所述神经网络的相应层的权重向量的大小。
根据所述第一方面的所述方法提供了用于确定量化参数以将神经网络量化为混合精度的通用方法。所述方法可以,例如,由一个或多个处理器实现或执行。用于训练(以及稍后用于推断,也称为操作)的数据可以是图片,例如静止图片或视频图片,或者相应的图片数据、音频数据、任何其它测量的或捕获的物理数据或数字数据。
在第一种实现方式中,所述第二损失函数包括所述第一损失函数、第一正则化分量和第二正则化分量。
在第二种实现方式中,选择所述第一正则化分量以将每个层的所述量化权重向量约束在预定值范围内。
在第三种实现方式中,选择所述第二正则化分量以将所述对应量化神经网络的每一层的量化输入数据值约束在预定值范围内。
在第四种实现方式中,所述第一和/或第二正则化分量包括连续依赖于所述量化参数向量的所述数据值的函数。
在第五种实现形式中,修改所述权重向量和所述量化参数向量包括确定所述第二损失函数的局部最小值。
在第六种实现方式中,根据梯度下降法确定所述局部最小值。
在第七种实现方式中,所述方法包括:访问验证数据集;针对所述验证数据集中的多个验证向量中的每一个,基于所述量化参数来评估所述量化神经网络。
在第八种实现方式中,基于所述权重向量的大小确定所述量化参数向量包括:确定所述权重向量的所述多个浮点数据值的大小之和;基于所述确定生成参数面。
在第九种实现方式中,所述参数面包括椭球面的一部分。
在第十种实现方式中,所述方法包括:生成一组大小参数;选择所述第一正则化分量以将所述量化参数训练为所述一组大小参数。
在第十一种实现方式中,选择所述第二正则化分量以将所述对应量化神经网络的每一层的所述量化输入数据值约束为与所述第一正则化分量相关联的位宽参数集。
在第十二种实现方式中,所述方法包括将所述对应量化神经网络的每一层的输入数据值量化为预定位宽。
在第十三种实现方式中,所述方法包括:基于所述神经网络的每一层的所述输入数据值的大小来确定量化参数的另一向量;基于所述另一向量评估所述第二损失函数;基于所述评估修改所述另一向量。
在第十四种实现方式中,所述方法包括基于对神经网络的输入执行推断。所述第十四种实现方式包括:根据所述第一方面的所述方法确定所述神经网络的量化参数;基于所述量化参数确定与所述神经网络对应的量化神经网络;基于所述输入评估所述量化神经网络以推断输出。
根据第二方面,提供了一种用于操作神经网络的方法。所述方法包括:获得要由所述神经网络处理的数据;由所述神经网络处理所述数据,其中,所述神经网络通过根据上述和这里描述的任何方法获得或可获得的量化参数来配置。
所述神经网络的所述处理可以包括用于信号增强(例如图像增强,例如用于超限分辨)、去噪(例如静止或视频图像去噪)、语音和音频处理(例如自然语言处理(naturallanguage processing,NLP))或其它目的的图像或其它数据的处理。
根据第三方面,提供了一种用于执行所述第一或第二方面提供的所述方法的计算机程序。
根据第四方面,提供了一种非瞬时性计算机可读介质。所述非瞬时性计算机可读介质包括指令,所述指令在由所述处理器执行时,会使所述处理器执行所述第一或第二方面提供的所述方法。
根据第五方面,提供了一种用于确定混合精度量化参数来量化神经网络系统的计算系统。所述系统包括至少一个处理器和至少一个存储器,所述存储器包括程序代码,所述程序代码在由所述至少一个处理器执行时提供指令,所述指令用于基于所述权重向量的大小来确定量化参数向量;对于所述训练数据集的多个训练向量中的每一个:基于所述训练向量和所述量化参数向量来评估第二损失函数;修改所述权重向量和所述量化参数向量以最小化所述第二损失函数的输出。所述量化参数向量的所述量化参数中的每一个约束量化神经网络的一层的量化权重向量对应于所述神经网络的相应层的权重向量的大小。
附图说明
为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:
图1示出了一示例提供的神经网络的示意图;
图2示出了一示例提供的神经网络的一部分的图;
图3示出了一示例提供的正则化函数的图;
图4示出了一示例提供的参数面的图;
图5示出了一示例提供的用于确定量化参数的方法的流程图;
图6示出了通过混合精度量化的ResNet-20的量化方法的比较表;
图7示出了一示例提供的神经网络层的混合精度位宽图;
图8示出了通过混合精度量化的ResNet-20的量化方法的比较表;
图9示出了一示例提供的神经网络层的混合精度位宽图;
图10示出了Imagenet上MobileNet_v2量化的量化方法的比较表;
图11示出了一示例提供的位宽分布表;
图12是处理系统的方框图,该处理系统可以用来实现本文公开的设备和方法。
具体实施方式
下面将充分详细地描述示例性实施例,以使本领域普通技术人员能够实施和实现本文所述的系统和过程。重要的是要理解,各实施例可以用许多替代形式提供,并且不应被解释为局限于本文所述的示例。
因此,虽然各实施例可以用各种方式修改并采用各种替代形式,但是其具体实施例在附图中示出并在下文作为示例详细描述。无意局限于所公开的特定形式。相反,应包括属于所附权利要求书范围内的所有修改、等效物和替代物。在所有附图和适当的详细描述中,示例性实施例的元件一致地用相同的参考编号表示。
本文中用于描述实施例的术语并非旨在限制范围。“一”、“一个”和“所述”为单数形式,因为它们只有一个所指对象,然而在本文中使用单数形式不应排除存在多个所指对象。换言之,以单数形式提及的元素可以涵盖单数和复数,除非上下文另有明确指示。应进一步了解,本说明书中所用的术语“包括”用于说明存在所述特征、整数、步骤、操作、元件和/或部件,但并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、部件和/或它们的组合。
除非另有定义,否则本文中使用的所有术语(包括技术和科学术语)均应解释为本领域中的惯用语。还应理解,常用术语也应解释为相关领域中的惯用语,除非本文中明确定义,否则不应被解释为理想化或过于正式的意义。
量化方法可以减少神经网络中的内存占用和推断时间。神经网络可以包括几个不同大小的计算块,每个计算块都可以量化为任意位宽。通过将神经网络的不同块量化为不同位宽,可以获得具有不同压缩程度、加速度和质量的神经网络。
例如,由神经网络表示的推断模型可以包括分别填充模型大小的20%、30%和50%的三个块。全精度模型的所有权重使用32位浮点表示。全精度模型的精度可以等于99%,压缩比为1,所有权重量化为8位的全8位模型的精度可以等于98%,压缩比为4,第一块(20%)量化为4位表示且其余部分量化为8位表示的模型的精度可以等于97%,压缩比为4.44,第二块(30%)量化为4位表示且其余部分量化为8位表示的模型的精确度可以等于65%,压缩比为4.71,第三块(50%)量化为4位表示且其余部分量化为8位表示的模型的精确度可以等于55%,压缩比为5.33。需要高于65%的精确度的用户可以从多个量化模型中选择能让神经网络达到所需精度的量化模型。
因此混合精度量化允许在质量和压缩之间进行灵活控制。一些方法产生具有不同压缩比和质量的模型,其中用户可能必须手动选择最终结果。相反,本文所述的方法和系统允许用户设置所需的模型压缩比。
本文所述的方法使用函数族,这些函数平滑地依赖于确定其最小值数量的一组参数。此类函数可用作训练量化模型的正则化器。特别地,在本文所述的方法和系统中,求解最小化权重和激活的有限量化误差的区域Ω中的模型损失问题:
E(Loss(ξ,W))→min
可简化为求解以下问题:
在某些数λw和λa的参数(W、sw、sa)的定义域中。
在等式(1)中,ξ是输入数据分布,Wi和Aj是神经网络层的量化权重和量化输入,和/>是权重和输入的相应比例因子。
图1是一个示例提供的神经网络架构100的简化示意图。所述神经网络架构100可用于训练由神经网络构造的改进的神经网络。所述神经网络的每一层可以包括与所述神经网络的前一层和后一层的节点互连的多个节点。所述节点可以与在本文中称为权重的数据值相关联。每个层可以与权重向量相关联,所述权重向量包括所述层的所述节点的所述权重向量。所述神经网络的所述权重由浮点数据值确定。
在图1中,来自训练数据集110的训练数据作为输入数据120馈送到所述神经网络架构100。所述神经网络架构100包括根据本文所述方法从底层神经网络生成的改进的神经网络130。经过训练后,所述改进的神经网络130包括多个层块,其中块被量化为特定大小。在示例中,本文提到的数据值的“大小”可以指数据值的位宽。所述“模型大小”可以指神经网络的权重向量的位宽之和。为了构造所述改进的神经网络130,用户指定所需的模型大小。
根据示例,训练所述改进的神经网络130包括初始化一组可训练变量。这些可训练变量针对所述用户指定的模型大小优化量化权重的大小。所述神经网络架构100包括正则化计算140。所述正则化计算140是对来自所述改进的神经网络130的每一层的计算的累加。所述计算从先前描述的正则化函数族中的评估函数中生成。在图1中,框150包括所述改进的神经网络130的输出。框160包括根据所述改进的神经网络130的所述输出150和所述正则化计算140确定的损失函数计算。在训练期间,基于由框160表示的所述计算来更新所述改进的神经网络130的参数,包括用于量化权重的大小参数。
用于训练(以及稍后用于推断,也称为操作)的数据可以是图片,例如静止图片或视频图片,或者相应的图片数据、音频数据、任何其它测量的或捕获的物理数据或数字数据。
图2是图1所示的神经网络架构130的中间层的简化示意图200。图2中所示的框210包括到所述改进的神经网络130的中间层220的输入值。框230包括应用于输入值210的量化层。框240包括正则化函数的局部计算,其可以基于所述量化参数、所述输入数据和所述中间层的所述权重向量来生成。框250包括正则化项的全局累加器,其被输入到图1所示的损耗函数计算160。
图3示出了一示例提供的正则化函数的图。正则化函数族/>定义为平滑地依赖于参数t并且每个时刻都有/>(基数部分)根,这些根是函数的全局最小值。此类函数的构造方式为:如果/>接近于0,则x分量接近于来自段[-t,t–1]的整数网格(在/>的情况下),或者可替代地,接近于来自段[0,2t–1]的整数网格(在/>的情况下)。函数的示例可以定义如下:
根据本文描述的示例,所述神经网络架构100的所述损失函数计算160包括最小化以下损失函数:
在等式(2)中,变量和/>定义了所述改进的神经网络130的不同量化层的权重和输入的大小,其中每个权重向量和输入向量被量化为由2[t]个(舍入)元素组成的整数网格。例如,如果t=128,则对应向量被量化为由256个元素组成的整数网格,或被量化8位。
将这些变量视为独立的可训练变量,层的位宽不受约束。特别地,所有层的位宽都可以变大。给定一个包含n个大小为ki且位宽为bi的模型块的神经网络,该模型量化部分的大小为:
可以定义N–1个自变量来参数化由以下等式得出的椭球面的第一象限(xi>0):
图4示出了由变量参数化的椭球的象限400的图,其中变量/>通过以下等式与变量xi相关:
根据本文所述的示例,量化模型的训练方式是:相对于变量(W、s、θ),最小化通过等式(2)得出的损失LQ,然后每次验证时将神经网络每一层的缩放权重量化为由 个元素组成的整数网格。如果/>则量化网格的大小正好是二次幂。因此,值xi充当权重位宽的连续类似物。等式(3)中的等式始终能满足,因此能训练近似相同大小的量化模型。
许多现有和未来的处理器仅支持某些固定位宽的算法。例如,许多GPU支持4位和8位计算,但不支持5位、6位和7位计算。在本文所述的示例中,可以定义特定位宽参数的正则化函数,该函数可在预定的固定集上提供位宽值的稳定性。
为了使大小值稳定为整数,正弦正则化器定义为:可以添加到等式(2)中的损失函数中。在量化模型需要一组硬件特定位宽的情况下,可以将特殊正则化函数添加到LQ以将权重和激活的位宽值收敛到特定组。例如,用户或其它实体可以定义一组所需的位宽值,例如{4,8,16}。因此,结果模型的层权重的位宽仅等于4位、8位和16位。
图5示出了一个示例提供的用于确定混合精度量化参数来量化神经网络的方法500的方框图。所述方法500可以与本文描述的其它方法和示例一起使用。所述方法500可以与任何神经网络的多个层一起使用,其中每一层与包括多个浮点数据值的权重向量相关联,其中选择所述权重向量以最小化与所述神经网络相关联的第一损失函数。
在框510处,所述方法500包括基于所述权重向量的大小来确定量化参数向量。根据本文所述的示例,所述量化参数向量包括先前定义的可训练变量的向量。特别地,根据本文所述的示例,所述量化参数向量的所述量化参数中的每一个约束量化神经网络的一层的量化权重向量对应于所述神经网络的相应层的权重向量的大小。基于所述权重向量的大小确定所述量化参数向量可以包括:确定所述权重向量的所述多个浮点数据值的大小之和;基于所述确定生成参数面,例如图4所示的椭球参数面400。
在框520处,所述方法500包括,对于所述训练数据集中的每个训练向量,基于所述训练向量和所述量化参数向量来评估第二损失函数。根据本文所述的示例,所述第二损失函数可以是等式(2)中定义的损失函数。特别地,所述第二损失函数可以包括与所述神经网络相关联的所述第一损失函数、第一正则化分量和第二正则化分量。
根据示例,可以选择所述第一正则化分量以将每个层的所述量化权重向量约束在预定值范围内。还可以选择所述第二正则化分量以将所述相应量化神经网络的每一层的量化的输入数据值约束在预定值范围内。此外,在示例中,所述第一正则化分量和/或第二正则化分量包括连续依赖于所述量化参数向量的所述数据值的函数。这些属性是根据先前定义的函数来实现的。
在框530处,所述方法500包括修改所述权重向量和所述量化参数向量以最小化所述第二损失函数的输出。根据示例,最小化所述第二损失函数的输出可以包括确定所述第二损失函数的局部最小值。这可以使用梯度下降法来执行。
所述方法500还可以包括:访问验证数据集;针对所述验证数据集中的多个验证向量中的每一个,基于所述量化参数来评估所述量化神经网络。
所述方法500还可以包括将量化应用于输入向量,即激活所述神经网络的相应层。所述确定激活的量化参数的方法可以类似于确定所述权重的量化参数的所述方法500。特别地,所述方法500还可以包括:基于所述神经网络的每一层的所述输入数据值的大小来确定量化参数的另一向量;基于所述另一向量评估所述第二损失函数;基于所述评估修改所述另一向量。可替代地,可以使用与所述权重相同的量化参数来量化所述输入,或者量化为预定位宽。
图6示出了用于ResNet-20混合精度量化的量化方法的比较表。除了第一层和最后一层之外,所有权重都被量化,使得0.91%的模型保留了32位。该表格显示了具有非量化激活的不同量化方法的比较,包括SinReQ和使用具有固定位宽的平滑正则器的量化(QSin)。在这种情况下,使用本文所述方法的模型精度为91.83%。
图7示出了使用本文所述的混合精度量化方法量化的ResNet-20的层的混合精度位宽图。大部分层被量化为4位。
图8示出了通过具有4位激活的混合精度量化的ResNet-20的量化方法的比较表。在图8所示的表中,将本文所述的方法与DoReFa、PACT、SinReQ和QSin方法进行了比较。结果证明,本文所述的方法对于混合精度量化模型的准确度优于相同总模型大小的量化4位模型。完全精度模型准确度为91.73%。
图9示出了使用4位激活量化的ResNet-20层的混合精度位宽图。
图10示出了Imagenet上MobileNet_v2量化的量化方法的比较表。对所有模型层的权重进行量化,模型的1%保留32位,即偏差和批处理范数。将激活量化为8位。将所述方法与以下两种量化方法进行比较:使用直通型估计器的TensorFlow 8位量化和混合精度DNN方法。使用本文所述的方法,完全精度模型准确度为71.88%。图11示出了使用本文所述方法的位宽分布表。
所述方法和系统提供了一种实现独立于层类型、激活函数或网络拓扑的任何神经网络架构的混合精度量化的通用方法。此外,所述方法在分类、回归任务和图像增强任务中展现出改进的结果。所述方法具有减少内存占用的优点:在没有舍入权重的情况下将全精度权重用于前向和后向传播,并且不需要存储具有不同位宽的多个模型实例。可以使用梯度下降法来执行模型训练,从而提高收敛速度。所述方法能够对模型的整体大小进行显式设置约束。此外,可以训练模型以将量化参数提供给一组特定的位宽,例如特殊的硬件特定位宽。
图12是处理系统1200的方框图,该处理系统可以用来实现本文公开的设备和方法。
特定设备可利用所有所示的组件或所述组件的仅一子集,且设备之间的集成程度可能不同。此外,设备可以包含组件的多个实例,例如多个处理单元、处理器、存储器、发射器、接收器等。所述计算系统1200包括处理单元1202。所述处理单元包括中央处理器(central processing unit,CPU)1214、存储器1408、还可以包括大容量存储器设备1204、视频适配器1210以及连接至总线1220的I/O接口1212。
所述总线1220可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、或视频总线。所述CPU 1214可包括任何类型的电子数据处理器。所述存储器1208可包括任意类型的非瞬时性系统存储器,例如静态随机存取存储器(staticrandom access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或它们的组合。在实施例中,所述存储器1208可包含在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。
所述大容量存储器1204可包括任何类型的非瞬时性存储设备,该非瞬时性存储设备用于存储数据、程序和其它信息,并使得所述数据、程序和其它信息可经由所述总线1220访问。所述大容量存储器1204可包括,例如,固态驱动器、硬盘驱动器、磁盘驱动器或光盘驱动器中的一个或多个。
所述视频适配器1210和所述I/O接口1212提供接口以将外部输入和输出设备耦合到所述处理单元1202。如所图示,输入以及输出设备的实例包含耦合到所述视频适配器1210的显示器1218和耦合到所述I/O接口1412的鼠标、键盘或打印机1216。其它设备可以耦合到所述处理单元1202上,并且可以利用额外的或较少的接口卡。例如,可使用如通用串行总线(Universal Serial Bus,USB)(未示出)等串行接口将接口提供给外部设备。
所述处理单元1202还包含一个或多个网络接口1206,所述网络接口可以包括例如以太网电缆等有线链路,和/或用以接入节点或不同网络的无线链路。所述网络接口1206允许所述处理单元1202经由网络与远程单元通信。举例来说,所述网络接口1206可以经由一个或多个发射器/发射天线以及一个或多个接收器/接收天线提供无线通信。在一个实施例中,所述处理单元1202耦合到局域网1222或广域网上以用于数据处理以及与远程设备通信,所述远程设备例如其它处理单元、因特网或远程存储设施。
应当理解,本文提供的实施例方法的一个或多个步骤可以由相应的单元或模块执行。例如,可以由发送单元或发送模块发送信号。所述相应单元/模块可以是硬件、软件或其组合。例如,一个或多个单元/模块可以是集成电路,比如现场可编程门阵列(fieldprogrammable gate array,FPGA)或专用集成电路(application-specific integratedcircuit,ASIC)。
虽然已详细地描述了本发明及其优点,但是应理解,可以在不脱离如所附权利要求书所界定的本发明的精神和范围的情况下对本发明做出各种改变、替代和更改。
本发明可以在其它特定装置和/或方法中实施。所描述的示例性实施例在各方面都仅仅是示意性的,而不是限制性的。特别地,本发明的范围由所附权利要求书而不是由本文的描述和附图指示。所有来自权利要求书相同含义和范围的变化都在其范围之内。
Claims (20)
1.一种用于确定混合精度量化参数来量化神经网络的方法,其特征在于,所述神经网络包括多个层,每个层与包括多个浮点数据值的权重向量相关联,所述神经网络在训练数据集上训练,并且选择所述权重向量以最小化与所述神经网络相关联的第一损失函数,所述方法包括:
基于所述权重向量的大小来确定量化参数向量;对于所述训练数据集的多个训练向量中的每一个:
基于所述训练向量和所述量化参数向量来评估第二损失函数;
修改所述权重向量和所述量化参数向量以最小化所述第二损失函数的输出,
所述量化参数向量的所述量化参数中的每一个约束量化神经网络的一层的量化权重向量对应于所述神经网络的相应层的权重向量的大小。
2.根据权利要求1所述的方法,其特征在于,所述第二损失函数包括所述第一损失函数、第一正则化分量和第二正则化分量。
3.根据权利要求2所述的方法,其特征在于,选择所述第一正则化分量以将每个层的所述量化权重向量约束在预定值范围内。
4.根据权利要求1至3所述的方法,其特征在于,选择所述第二正则化分量以将所述对应量化神经网络的每一层的量化输入数据值约束在预定值范围内。
5.根据权利要求2至4所述的方法,其特征在于,所述第一和/或第二正则化分量包括连续依赖于所述量化参数向量的所述数据值的函数。
6.根据权利要求1至5所述的方法,其特征在于,修改所述权重向量和所述量化参数向量包括确定所述第二损失函数的局部最小值。
7.根据权利要求6所述的方法,其特征在于,根据梯度下降法确定所述局部最小值。
8.根据权利要求1至7所述的方法,其特征在于,包括:
访问验证数据集;
针对所述验证数据集中的多个验证向量中的每一个,基于所述量化参数来评估所述量化神经网络。
9.根据权利要求1至8所述的方法,其特征在于,基于所述权重向量的大小确定所述量化参数向量包括:
确定所述权重向量的所述多个浮点数据值的大小之和;
基于所述确定生成参数面。
10.根据权利要求9所述的方法,其特征在于,所述参数面包括椭球面的一部分。
11.根据权利要求2至5中任一项所述的方法,其特征在于,包括:
生成一组大小参数;
选择所述第一正则化分量以将所述量化参数训练为所述一组大小参数。
12.根据权利要求1至11中任一项所述的方法,其特征在于,选择所述第二正则化分量以将所述对应量化神经网络的每一层的所述量化输入数据值约束为与所述第一正则化分量相关联的位宽参数集。
13.根据权利要求1至11中任一项所述的方法,其特征在于,选择所述第二正则化分量以将所述对应量化神经网络的每一层的所述量化输入数据值约束在预定位宽内。
14.根据权利要求1至11中任一项所述的方法,其特征在于,包括:
基于所述神经网络的每一层的所述输入数据值的大小来确定量化参数的另一向量,基于所述另一向量评估所述第二损失函数并基于所述评估修改所述另一向量;
选择所述第二正则化分量以将所述输入量化参数训练为所述一组输入大小参数。
15.一种基于对神经网络的输入执行推断的方法,其特征在于,所述方法包括:
根据权利要求1至14中任一项所述的方法确定所述神经网络的量化参数;
基于所述量化参数确定与所述神经网络对应的量化神经网络;
基于所述输入评估所述量化神经网络以推断输出。
16.一种用于操作神经网络的方法,其特征在于,所述方法包括:
获得要由所述神经网络处理的数据;
由所述神经网络处理所述数据,所述神经网络通过根据权利要求1至14中任一项所述的方法获得或可获得的量化参数来配置。
17.一种计算机程序,其特征在于,用于执行权利要求1至16中任一项所述的方法。
18.一种非瞬时性计算机可读介质,其特征在于,包括指令,所述指令在由所述处理器执行时,会使所述处理器执行权利要求1至16中任一项所述的方法。
19.一种计算系统,其特征在于,包括一个或多个处理器,所述处理器用于执行权利要求1至16中任一项所述的方法。
20.一种用于确定混合精度量化参数来量化神经网络的计算系统,其特征在于,所述神经网络包括多个层,每个层与包括多个浮点数据值的权重向量相关联,所述神经网络在训练数据集上训练,并且选择所述权重向量以最小化与所述神经网络相关联的第一损失函数,所述计算系统包括:
至少一个处理器;
至少一个存储器,所述存储器包括程序代码,所述程序代码在由所述至少一个处理器执行时提供指令,所述指令用于:
基于所述权重向量的大小来确定量化参数向量;对于所述训练数据集的多个训练向量中的每一个:
基于所述训练向量和所述量化参数向量来评估第二损失函数;
修改所述权重向量和所述量化参数向量以最小化所述第二损失函数的输出,
所述量化参数向量的所述量化参数中的每一个约束量化神经网络的一层的量化权重向量对应于所述神经网络的相应层的权重向量的大小。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2020/000601 WO2022103291A1 (en) | 2020-11-13 | 2020-11-13 | Method and system for quantizing a neural network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116472538A true CN116472538A (zh) | 2023-07-21 |
Family
ID=74561976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080104047.6A Pending CN116472538A (zh) | 2020-11-13 | 2020-11-13 | 用于量化神经网络的方法和系统 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4196919A1 (zh) |
CN (1) | CN116472538A (zh) |
WO (1) | WO2022103291A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117114075B (zh) * | 2023-10-19 | 2024-01-26 | 湖南苏科智能科技有限公司 | 神经网络模型量化方法、装置、设备及介质 |
-
2020
- 2020-11-13 WO PCT/RU2020/000601 patent/WO2022103291A1/en active Application Filing
- 2020-11-13 EP EP20851354.9A patent/EP4196919A1/en active Pending
- 2020-11-13 CN CN202080104047.6A patent/CN116472538A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4196919A1 (en) | 2023-06-21 |
WO2022103291A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11373087B2 (en) | Method and apparatus for generating fixed-point type neural network | |
US11270187B2 (en) | Method and apparatus for learning low-precision neural network that combines weight quantization and activation quantization | |
US20200302289A1 (en) | Using quantization in training an artificial intelligence model in a semiconductor solution | |
TW201915839A (zh) | 對人工神經網路及浮點神經網路進行量化的方法及裝置 | |
KR102562320B1 (ko) | 비트 연산 기반의 뉴럴 네트워크 처리 방법 및 장치 | |
CN112149797B (zh) | 神经网络结构优化方法和装置、电子设备 | |
EP4087239A1 (en) | Image compression method and apparatus | |
TWI744724B (zh) | 處理卷積神經網路的方法 | |
US20220044109A1 (en) | Quantization-aware training of quantized neural networks | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN112884146A (zh) | 一种训练基于数据量化与硬件加速的模型的方法及系统 | |
CN115552424A (zh) | 用于训练包含量化参数的人工神经网络的方法 | |
WO2022163861A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
CN116472538A (zh) | 用于量化神经网络的方法和系统 | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
CN114970822A (zh) | 一种神经网络模型量化方法、系统、设备及计算机介质 | |
CN114548360A (zh) | 用于更新人工神经网络的方法 | |
KR20230000686A (ko) | 전자 장치 및 전자 장치의 제어 방법 | |
CN110782017B (zh) | 用于自适应调整学习率的方法和装置 | |
CN113705801A (zh) | 一种神经网络模型的训练装置、方法及相关设备 | |
KR20220040234A (ko) | 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치 | |
WO2022230906A1 (ja) | ニューラルネットワーク生成装置、ニューラルネットワーク演算装置、エッジデバイス、ニューラルネットワーク制御方法およびソフトウェア生成プログラム | |
US20240202501A1 (en) | System and method for mathematical modeling of hardware quantization process | |
CN114781618A (zh) | 一种神经网络量化处理方法、装置、设备及可读存储介质 | |
CN117993437A (zh) | 基于深度学习模型的量化方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |