CN115034387A - 基于无数据场景的神经网络实时量化方法及电子设备 - Google Patents
基于无数据场景的神经网络实时量化方法及电子设备 Download PDFInfo
- Publication number
- CN115034387A CN115034387A CN202210774598.4A CN202210774598A CN115034387A CN 115034387 A CN115034387 A CN 115034387A CN 202210774598 A CN202210774598 A CN 202210774598A CN 115034387 A CN115034387 A CN 115034387A
- Authority
- CN
- China
- Prior art keywords
- quantization
- neural network
- convolution
- model
- elements
- 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
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Molecular Biology (AREA)
- Evolutionary Computation (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Databases & Information Systems (AREA)
- Neurology (AREA)
- Algebra (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种基于无数据场景的神经网络实时量化方法及电子设备,所述基于无数据场景的神经网络实时量化方法包括:采用海森矩阵表示量化模型与原始模型之间的精度损失;对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和;基于所述三个矩阵对每一层的神经网络分别按照元素、卷积核、卷积输出通道的顺序进行量化。本发明无需额外的训练数据,能够实现毫秒级别的模型量化过程,同时能够在快速量化的同时,保证神经网络的高识别精度。
Description
技术领域
本发明涉及新一代信息技术领域,特别是涉及云计算技术领域。
背景技术
人工智能算法随着以神经网络为主要内容的深度学习算法的不断进步,更加广泛的应用到现实生活中的各个领域,例如图像处理、语音处理、文字处理等。人工智能算法的应用逐渐转移至手机、物联网设备等移动计算设备,这些设备较低的计算性能要求人工智能算法具有更高的计算速度与更小的内存开销。神经网络模型量化是提高神经网络计算效率的一个有效方法,它通过将模型参数转换成内存开销更小的数据格式来减少计算开销与内存开销。然而,神经网络模型量化的方法需要尽量降低神经网络识别的精度损失。现有的模型量化仍存在一些问题。
一方面,数据驱动的模型量化方法需要额外的训练数据来完成对模型的量化过程,但是存在训练数据难获得与量化过程速度慢的问题。另一方面,现有的无数据的模型量化方法在一定程度上解决了训练数据的问题,但是无法在进行快速的量化的同时保证神经网络识别精度。
数据驱动的量化方法主要分为量化感知训练(Quantization-aware Train)和训练后量化(Post-training Quantization),量化感知训练是在神经网络训练中添加量化的过程,可以直接生成量化的模型。训练后量化是将现有训练完毕的模型进行量化处理,使用基于梯度下降的微调的方法,也可以使用基于启发式算法的方法。这些方法需要训练数据来进行模型量化的过程,将训练数据应用于模型的训练或者低精度参数调优过程,来更好地保持模型识别精度。
这种方法存在多个问题。无论是量化感知训练还是训练后量化都需要大量的训练数据和时间,这不仅有部分情况下数据难以获得的问题,也有量化过程速度非常缓慢的问题。训练过程要求芯片需要非常大的内存空间,对训练部署平台也有很高的要求。训练时间根据模型大小和数据量的不同,训练时间通常在一个到数百个小时,极大地限制了量化的应用和部署。部分训练后量化使用启发式算法,从而极大地减少了量化时间,但是量化精度很低。
无数据的模型量化方法(Data-free Quantization)解决了量化过程中对于训练数据的依赖,通过训练好的模型参数生成一部分假数据,然后对模型进行微调或者校正。在数据敏感的场景中,例如在医疗、隐私等场景中,无数据量化可以不需要真实数据即可进行量化。
但这种方法在进行快速的量化的同时无法保证神经网络识别精度。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种基于无数据场景的神经网络实时量化方法及电子设备,用于解决技术现有模型量化方法中存在的无法在保证模型的低精度损失的同时实现高效的模型量化过程的技术问题。
为实现上述目的及其他相关目的,本发明提供一种基于无数据场景的神经网络实时量化方法,包括:采用海森矩阵表示量化模型与原始模型之间的精度损失;对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和;基于所述三个矩阵对每一层的神经网络分别按照元素、卷积核、卷积输出通道的顺序进行量化。
于本发明的一实施例中,所述对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和包括:基于所述海森矩阵近似获得激活方阵;将所述激活方阵拆分为三个矩阵。于本发明的一实施例中,所述激活方阵与所述三个矩阵的关系为:
其中,为激活方阵,Xl为输入激活向量,HE,HK,HC分别为矩阵,HC=cmJNK,JNK与JK分别表示大小为(N×K)×(N×K)与K×K的全一方阵;cm,k1,……,kN,e1,1,……,eN,K均为常系数。
于本发明的一实施例中,所述按照元素、卷积核、卷积输出通道的顺序进行量化包括:基于四舍五入的方式对所述元素进行量化;基于翻转元素选择算法对所述卷积核和所述卷积输出通道进行量化。
于本发明的一实施例中,所述按照元素、卷积核、卷积输出通道的顺序进行量化还包括:计算原始模型参数与量化后的模型参数之间的差值,更新卷积核的量化误差和;基于所述元素的量化结果和更新的所述卷积核的量化误差和对所述卷积核进行量化。
于本发明的一实施例中,所述按照元素、卷积核、卷积输出通道的顺序进行量化还包括:更新卷积输出通道量化误差和;基于所述卷积核的量化结果和更新的所述卷积输出通道量化误差和对所述卷积输出通道进行量化。
于本发明的一实施例中,所述基于翻转元素选择算法对所述卷积核和所述卷积输出通道进行量化包括:选取量化误差符号和量化误差和符号相同的元素,作为候选量化元素;按绝对量化误差的大小对所述候选量化元素进行降序排序;选择前K个最大的绝对量化误差的元素进行翻转,其中,K的大小为绝对误差和。
于本发明的一实施例中,当所述卷积核或者所述输出通道的误差和为正数数时,选择尾数大于0.5的元素向下翻转;当所述卷积核或者所述输出通道的误差和为负数时,选择尾数小于0.5的元素向上翻转。
为实现上述目的及其他相关目的,本发明还提供一种电子设备,包括存储器,用于存储计算机程序;处理器,用于运行所述计算机程序以实现如上所述的基于无数据场景的神经网络实时量化方法。
如上所述,本发明的基于无数据场景的神经网络实时量化方法及电子设备具有以下有益效果:
本发明无需额外的训练数据,能够实现毫秒级别的模型量化过程,同时能够在快速量化的同时,保证神经网络的高识别精度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1显示为本申请一实施例中的基于无数据场景的神经网络实时量化方法的原理示意图;
图2显示为本申请一实施例中的基于无数据场景的神经网络实时量化方法中神经网络卷积层的卷积计算示例图;
图3显示为本申请一实施例中的基于无数据场景的神经网络实时量化方法中EQ,KQ,CQ所优化的HE,HK,HC矩阵示例图;
图4显示为本申请一实施例中的基于无数据场景的神经网络实时量化方法中基于舍入的模型量化方法示意图;
图5显示为本申请一实施例中的基于无数据场景的神经网络实时量化方法中模型量化算法框架图;
图6显示为本申请一实施例中的基于无数据场景的神经网络实时量化方法应用的物理系统架构图;
图7显示为本申请一实施例中的基于无数据场景的神经网络实时量化方法中模型量化器的功能流程图;
图8显示为本申请一实施例中的无数据场景的神经网络实时量化方法的实施过程流程图。
图9显示为本申请一实施例中的电子设备的原理框图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
当前已有的模型量化方法存在诸多问题,无法在保证模型的低精度损失的同时实现高效的模型量化过程。这给模型量化的应用造成了严重的阻碍,尤其是在现有模型快速迭代的背景下。本实施例旨在提出一种算法架构协同设计的模型量化方法,该方式能够实现毫秒级别的模型量化过程,同时保证量化模型的高精度。
具体地,本实施例的目的在于提供一种基于无数据场景的神经网络实时量化方法及电子设备,用于解决技术现有模型量化方法中存在的无法在保证模型的低精度损失的同时实现高效的模型量化过程的技术问题。
本实施例的基于无数据场景的神经网络实时量化方法是以二阶信息(海森矩阵)近似算法为前提,通过多粒度渐进优化而实现的一种神经网络量化方法。在多粒度渐进优化的过程中,本发明对模型量化常用的舍入方法进行了创新与适配。在阐述本实施例的基于无数据场景的神经网络实时量化方法的基本原理之前,本实施例对模型量化方法以及模型量化过程使用的舍入方法进行描述。
模型量化是指在神经网络模型的训练或推断时,对于神经网络模型参数,选取合适的低精度的定点数来代替原始的高精度浮点数来表示它们的方法。模型量化的目的是在尽量保持模型精度的前提下,减少神经网络模型训练或推断的计算负担与存储负担。假设神经网络中待量化的模型参数w,量化后的模型参数为在进行模型量化时,首先使用s作为缩放比例参数,对原始数值进行收缩,收缩后的数值将会进行舍入操作,舍入后的数值将被剪切。剪切后的数值下界与上界分别为min,max。随后使用s作为缩放比例参数,对剪切后数值进行放大。量化完成后,w被舍入到与定点数值表示最近的量化后数值量化过程可以公式化描述为其中clip()表示数值剪切的方法。运算符表示四舍五入的方法。四舍五入可以最小化量化后模型参数与原始数值之间的平均平方误差(MSE),以前的模型量化方法大多采用四舍五入的方法对神经网络模型进行量化。
在下述内容中,本实施例的基本原理分为两部分进行介绍,分别为基于神经网络精度损失的二阶信息(海森矩阵)近似算法,基于激活方阵的多粒度分解和近似方法。
以下将详细阐述本发明的基于无数据场景的神经网络实时量化方法及电子设备的原理及实施方式,使本领域技术人员不需要创造性劳动即可理解本发明的基于无数据场景的神经网络实时量化方法及电子设备。
实施例1
如图1所示,本实施例提供一种基于无数据场景的神经网络实时量化方法,包括:
步骤S100,采用海森矩阵表示量化模型与原始模型之间的精度损失;
步骤S200,对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和;
步骤S300,基于所述三个矩阵对每一层的神经网络分别按照元素、卷积核、卷积输出通道的顺序进行量化。
以下对本实施例的基于无数据场景的神经网络实时量化方法进行详细说明。
步骤S100,采用海森矩阵表示量化模型与原始模型之间的精度损失。
模型量化方案需要保持模型的识别精度,需要采取优化方案,最小化原始模型与量化模型之间的精度损失。本发明利用模型梯度的海森矩阵来表示每一层的的精度损失。这样的方法能够分层地刻画量化模型的精度损失。在对神经网络的预测误差进行建模时,输入到神经网络模型的数值组成的输入矩阵为X,该输入矩阵对应的真实标签矩阵为Y。将神经网络模型的全部参数组成的矩阵以W表示,以此,该神经网络对于输入X产生的预测值与真实标签Y之间的预测误差为在此基础上,量化参数矩阵与原始参数矩阵的差值表示为ΔW,进而通过泰勒展开,精度损失可以以期望的形式表示为:
其中,gW为网络误差函数对W的梯度,HW对W的完整网络海森矩阵。因为训练良好的模型已经近乎收敛,gW因而可忽略。因为HW的计算具有很高的内存和计算开销,因此对HW进行近似计算。如果假设神经网络的网络层之间、单层网络的输出通道之间都是独立的,神经网络l层上输出通道为m的海森矩阵可以进一步被优化为:
即于本实施例中,所述海森矩阵表示为:其中:为神经网络l层上输出通道为m的海森矩阵,xl与yl分别为神经网络层上输入与输出向量, 为输出通道为m的对角矩阵。可以近似为对角矩阵,因此对于每一个通道可以简化为一个常量。
步骤S200,对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和。
于本实施例中,所述对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和包括:
1)基于所述海森矩阵近似获得激活方阵;
2)将所述激活方阵拆分为三个矩阵。
基于海森矩阵的模型优化方案将会通过优化以下目标来计算神经网络第l层上输出通道为m的量化参数与原始参数差值:
基于该优化式进一步对进行近似,是一个对称方阵,是卷积神经网络权重参数对应的输入激活的展开形式。以图2中卷积神经网络中的卷积层为例,卷积权重具有M=4个输出通道,N=3个输入通道,K=2×2个卷积核元素,在图1的卷积计算过程中,3个输入通道的激活层通过卷积核尺寸为2×2的卷积计算后,产生4个输出通道的激活层。则与卷积对应展开的输入激活向量xl的长度是N×K,每个xl对应于输入通道内3个大小为2×2的卷积核,需要同时对M个输出通道的权重参数优化。则是一个对称方阵大小为(N×K)×(N×K),求多个输入激活样本的期望即为称之为激活方阵。
如图3,本实施例将激活方阵拆分成三个子矩阵HE,HK,HC和的形式。在此基础上,本实施例使用三种与之对应的优化过程,它们分别为元素层次优化EQ(element-wisequantization)、卷积核层次优化KQ(kernel-wise quantization)与输出通道层次优化CQ(channel-wise quantization)。这三个优化过程覆盖了参数激活方阵的对角元素的精确的优化过程与非对角元素近似的优化过程。
具体地,于本实施例中,所述激活方阵与所述三个矩阵的关系为:
其中,为激活方阵,xl为输入激活向量,HE,HK,HC分别为矩阵,HC=cmJNK,JNK与JK分别表示大小为(N×K)×(N×K)与K×K的全一方阵;cm,k1,……,kN,e1,1,……,eN,K均为常系数。
量化后模型的精度损失可以近似为:
可以继续近似将常系数省略,模型量化过程即最小化下述模型精度损失:
至此,本实施例将每一层权重的优化方案分解为三个部分,三个部分的优化分别通过元素层次优化EQ、卷积核层次优化KQ与输出通道层次优化CQ完成。可以发现该优化目标完全不需要输入数据的参与,同时这种近似方式最大程度上保留了原始激活方阵的特征,实现了了无数据量化。
步骤S300,基于所述三个矩阵对每一层的神经网络分别按照元素、卷积核、卷积输出通道的顺序进行量化。
本实施例提出了一种基于海森矩阵近似的无数据模型量化方案。该方案将量化模型与原始模型之间的性能损失使用模型参数的海森矩阵表示。在此基础上,依据神经网络输出层的独立性假设,对这个海森矩阵进行近似,并分解成三个矩阵和的形式。进而的,利用该矩阵分解,最小化性能损失可以拆分为三种不同大小粒度,即元素层次优化、卷积核层次优化与输出通道层次优化。为了满足无数据的优化目标,和加速量化过程。本实施例进一步进行近似,可以忽略每一项中的常数项,并依次进行元素层次优化EQ、卷积核层次优化KQ与输出通道层次优化CQ的粒度渐进式的优化流程,通过进行这是三个阶段的渐进式优化,便可以高效的完成神经网络的量化流程。
于本实施例中,第一项元素层次优化EQ的优化目标为,
就是对每一个权重元素进行量化,使得绝对量化误差小于0.5。该优化目标就是原始的四舍五入的优化目标。
于本实施例中,第二项卷积核层次优化KQ的优化目标为,
其中,被特称为误差和(SE,sum oferror),为绝对误差和(ASE,absolute sum of error)。其中每一项都是有符号数,这意味在每一个卷积核内,需要最小化所有的元素误差和的绝对值。例如,一个卷积核有9个元素,需要将这9各元素的误差(有符号)累加,使用优化方法,减少该累加和的绝对值(ASE)。
类似地,于本实施例中,第三项输出通道层次优化CQ的优化目标为,
很显然,当满足EQ时,元素的绝对误差小于0.5,即re=0.5时,EQ将有唯一解,且不能进行后续KQ和CQ的优化。因此,需要将EQ的约束放松,使得re=1.0,类似的,为满足CQ的优化需要,需要将KQ的约束放松为rk=1.0。
这三个层次的优化是一种按顺序的递进关系,从图3中可以看出,先从最小的元素粒度求出一个局部最优解,继而通过更大范围的激活方阵获得更多的信息不断地调整最优解的空间,最终对于每一个输出通道层次可以取得最优的优化方案,是最终的优化方案。
于本实施例中,所述按照元素、卷积核、卷积输出通道的顺序进行量化包括:
1)基于四舍五入的方式对所述元素进行量化;
2)基于翻转元素选择算法对所述卷积核和所述卷积输出通道进行量化。
在模型量化的过程中,神经网络模型中的参数使用了更低精度的整型数值表示。首先通过缩放因子将原始浮点型数值等效放缩到整型的数据表示范围,然后将模型参数的数值使用四舍五入的方法量化,将神经网络中的参数w四舍五入到最接近的整型数值,量化后的参数使用表示。如图4所示,基于四舍五入的模型量化方法的示例。首先,通过放缩使用低精度的整数型数值表示浮点数数值,图4中表示了一个量化区间[0,1]。若一个模型元素w=0.4,四舍五入将会使得其中量化误差若w=0.7,类似的,该方法将会使用来表示该模型参数,其量化误差为量化误差这种方法就是原始的元素量化方法EQ。
为了满足对KQ和CQ的优化目标,需要减小KQ的绝对误差和,本实施例设计了一种基于量化整型数值翻转的方法进行优化。
在最小化绝对误差和的过程中,本实施例采用了基于约束放松的量化整型数值翻转算法,每次优化过程中,翻转算法将会特定的数值进行修改,将该量化参数的数值进行在区间内调整。翻转的定义为,对于尾数小于0.5(量化误差为负)的数值向上取整,对尾数大于等于0.5(量化误差为正)的数值向下取整。所以,翻转方法即为四舍五入方法的反方向舍入。
例如图4中,0.4翻转为整数1的误差由-0.4变为0.6;0.7翻转为整数0的误差由0.3变为-0.7。这种方法可以改变量化后元素的取值,进而可以对KQ和CQ进行优化。
表1 KQ优化的整型数值翻转算法示例
如表1所示,若一个卷积核有两个元素,0.4,2.3。量化后两个元素分别为0.0和2.0。EQ的误差累加和-0.7。显然需要更改其中一个元素的值以减少KQ的绝对误差和。如图4所示,原始w=0.4,量化后应为翻转算法将该数值翻转为为为此时,该卷积核的量化结果为:1.0,2.0。其绝对误差和为0.3,很显然绝对值小于0.7,在卷积核层面更接近原始的元素的累加和。基于该算法即可对于EQ的绝对误差和进行最小化优化。类似地,在EQ优化过后,CQ在卷积通道间也可以采用翻转算法优化。
于本实施例中,所述按照元素、卷积核、卷积输出通道的顺序进行量化还包括:
1)计算原始模型参数与量化后的模型参数之间的差值,更新卷积核的量化误差和;
2)基于所述元素的量化结果和更新的所述卷积核的量化误差和对所述卷积核进行量化。
于本实施例中,所述按照元素、卷积核、卷积输出通道的顺序进行量化还包括:
1)更新卷积输出通道量化误差和;
2)基于所述卷积核的量化结果和更新的所述卷积输出通道量化误差和对所述卷积输出通道进行量化。
于本实施例中,所述基于翻转元素选择算法对所述卷积核和所述卷积输出通道进行量化包括:
1)选取量化误差符号和量化误差和符号相同的元素,作为候选量化元素;
2)按绝对量化误差的大小对所述候选量化元素进行降序排序;
3)选择前K个最大的绝对量化误差的元素进行翻转,其中,K的大小为绝对误差和。
于本实施例中,当所述卷积核或者所述输出通道的误差和为正数数时,选择尾数大于0.5的元素向下翻转;当所述卷积核或者所述输出通道的误差和为负数时,选择尾数小于0.5的元素向上翻转。
由于EQ后的KQ和CQ优化只允许有特定数量的元素翻转,不能翻转所有元素。因此,确定哪一个元素翻转将会极大的影响量化后神经网络的精度,所以本实施例设计一种启发式选取翻转元素的算法,快速的确定翻转候选元素。
(1)选择其量化误差的符号与误差和(SE)的符号相同的元素进行翻转
根据翻转算法的定义,对于尾数小于0.5(量化误差为负)时翻转将会使得该元素的量化误差由负数变为整数,增加正向误差,反之,增加负向误差。因此,当一个卷积核或者一个输出通道的误差和(SE)为正数数时,应该选择尾数大于0.5(量化误差为正)的元素向下翻转,增加负向误差,从而减少绝对误差和(ASE)。反之,SE为负数时,应选择量化误差为负的(尾数小于0.5)的元素向上翻转,增加正向的量化误差,从而减少绝对误差和(ASE)。因此,需要选择的候选翻转元素,其量化误差应和误差和(SE)一致。
(2)元素翻转个数的确定。
(3)为满足EQ的目标,选择绝对量化误差较大的元素翻转。
在满足(1)的条件的前提下,也会有多种选择,例如表1的例子所示,此时应该选择量化误差较大的元素,以减小对于EQ优化目标的影响。首先,对于表1中的两个元素,0.4,2.3,无论翻转哪个元素,其最后的卷积核ASE是相等的,均为0.3。其原因在于,整型翻转任意一个符合要求的元素翻转都会造成ASE大小为±1的改变。所以对于元素的的选择应该着力于减小EQ的优化目标很显然,应该选择绝对量化误差较大的元素翻转。例如表1的例子,翻转0.4的EQ误差为0.62+0.32=0.45,翻转2.3的EQ误差为0.42+0.72=0.65。因此,应选择绝对误差较大的元素翻转。
最终,可以实现以下算法流程:
1)计算KQ和CQ优化中所要优化权重数组的误差和(SE)。
2)选择量化误差符号和SE符号相同的元素,作为候选量化元素。
3)对候选量化元素,按绝对量化误差进行降序排序。
图5为本实施例的算法框架图。算法框架主要分为EQ优化,KQ优化,CQ优化三部分。算法将会对每一层的神经网络,按照元素、卷积核、卷积输出通道的顺序进行量化。首先,算法对每一个神经网络的模型参数进行四舍五入的量化操作,即EQ优化阶段。之后,通过计算原始模型参数与量化后的模型参数之间的差值,更新卷积核层次的量化误差和(SE)。接下来,利用EQ优化的结果和SE进行KQ优化过程,即上文中所叙述的K最大翻转算法。该算法将对卷积核内的部分元素作为候选,候选元素的量化误差和误差和(SE)具有相同的符号,然后将最大的个元素将数值进行翻转调整,并更新量化误差。然后对该输出通道上所有的卷积核进行遍历优化。遍历完成后,进行CQ的优化过程,针对输出通道层次的量化误差和(SE)和KQ量化结果进行K-最大翻转算法的优化。最后,遍历所有输出通道并优化,输出优化后的量化结果。
本实施例方法应用的物理系统架构如图6所示。本实施例在基本的深度学习系统上进行了拓展,并增设了模型量化。下面简单介绍各部分的功能:
神经网络加速器主要用于推理计算。
模型量化器用于进行模型的量化计算。
控制器用于指令的调度。
神经网络加速器、控制器和模型量化器的SRAM均采用双缓冲,通过总线和DRAM进行数据传输。模型量化器是该发明物理架构中的核心设计之一,它实现了模型量化计算这一主要功能。模型量化器会接受待量化的模型参数作为输入,其内部的逻辑电路将会自动完成模型量化的工作,并将量化后的模型参数输出。模型量化器实现模型量化的功能流程见图7所示。
利用模型量化器实现本实施例提出的完整模型量化算法,需要分两次向模型量化器输入待量化模型参数,以分别完成EQ与CQ两步量化流程。模型量化器的功能流程内需要加法逻辑与排序逻辑,因而在模型量化器中内嵌了算数计算器与排序模块,其中加法器采用加法树的实现,排序逻辑使用大顶堆设计。
图8显示为本实施例的无数据场景的神经网络实时量化方法的实施过程流程图。
1)选择原始模型参数:选取待量化的原始模型参数。
2)EQ优化:元素层次量化优化过程。
3)计算量化后误差:计算原始模型参数与元素间量化模型参数之间的误差。
4)判断并进行KQ优化:如果该卷积核上的所有参数都完成了EQ优化,算法将进行卷积核层次的量化优化过程。
5)计算量化后误差:计算原始模型参数与核间量化模型参数之间的误差。
6)判断并进行CQ优化:如果所有卷积核层次的参数都完成了EQ,KQ优化,算法将进行通道层次的量化优化过程。
7)判断及输出:若所有输出通道上的参数都完成了CQ优化,将会输出模型量化结果并结束。
本实施例中:用户与软件层的交互:
a)用户指定系统所需要执行的模型优化方案;
b)用户输入量化之后的目标数据类型;
c)用户输入所需要量化的神经网络模型架构和参数;
本实施例中:系统运行逻辑:根据用户确定的模型优化方案决定所需要采取的模型量化算法;根据用户确定的量化后目标数据类型确定量化后的权重参数。
所以针对当前神经网络模型量化方法存在的主要问题,本实施例提出了一种算法-架构协同设计的无数据的实时神经网络模型量化方案,该系统能够在小于一秒的时间内高效完成神经网络模型量化的过程,并有效保持量化后模型的识别精度;该系统有着较高的精度以及较低的开销。该发明为移动计算设备上部署大型神经网络算法提供了高效的支持。
实施例2
如图9所示,本实施例提供一种电子设备101,所述电子设备101包括:处理器1001及存储器1002;所述存储器1002用于存储计算机程序;所述处理器1001用于执行所述存储器1002存储的计算机程序,以使所述电子设备101执行如实施例1中基于无数据场景的神经网络实时量化方法的步骤。由于基于无数据场景的神经网络实时量化方法的步骤的具体实施过程已经在实施例1中进行了详细说明,在此不再赘述。
处理器1001为(Central Processing Unit,中央处理器)。存储器1002通过系统总线与处理器1001连接并完成相互间的通信,存储器1002用于存储计算机程序,处理器1001用于运行计算机程序,以使所述处理器1001执行所述的基于无数据场景的神经网络实时量化方法。存储器1002可能包含随机存取存储器(RandomAccess Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
此外,本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器1001执行时实现实施例1中所述的基于无数据场景的神经网络实时量化方法。实施例1已经对所述基于无数据场景的神经网络实时量化方法进行了详细说明,在此不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分结构可以通过计算机程序相关的硬件来完成。前述的计算机程序可以存储于一计算机可读存储介质中。该程序在执行时,生成上述基于无数据场景的神经网络实时量化方法;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本发明无需额外的训练数据,能够实现毫秒级别的模型量化过程,同时能够在快速量化的同时,保证神经网络的高识别精度。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中包括通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种基于无数据场景的神经网络实时量化方法,其特征在于:包括:
采用海森矩阵表示量化模型与原始模型之间的精度损失;
对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和;
基于所述三个矩阵对每一层的神经网络分别按照元素、卷积核、卷积输出通道的顺序进行量化。
3.根据权利要求1所述的基于无数据场景的神经网络实时量化方法,其特征在于:所述对所述海森矩阵进行近似计算,将所述海森矩阵分解为三个矩阵的和包括:
基于所述海森矩阵近似获得激活方阵;
将所述激活方阵拆分为三个矩阵。
5.根据权利要求1所述的基于无数据场景的神经网络实时量化方法,其特征在于:所述按照元素、卷积核、卷积输出通道的顺序进行量化包括:
基于四舍五入的方式对所述元素进行量化;
基于翻转元素选择算法对所述卷积核和所述卷积输出通道进行量化。
6.根据权利要求5所述的基于无数据场景的神经网络实时量化方法,其特征在于:所述按照元素、卷积核、卷积输出通道的顺序进行量化还包括:
计算原始模型参数与量化后的模型参数之间的差值,更新卷积核的量化误差和;
基于所述元素的量化结果和更新的所述卷积核的量化误差和对所述卷积核进行量化。
7.根据权利要求6所述的基于无数据场景的神经网络实时量化方法,其特征在于:所述按照元素、卷积核、卷积输出通道的顺序进行量化还包括:
更新卷积输出通道量化误差和;
基于所述卷积核的量化结果和更新的所述卷积输出通道量化误差和对所述卷积输出通道进行量化。
8.根据权利要求5至7任一权利要求所述的基于无数据场景的神经网络实时量化方法,其特征在于:所述基于翻转元素选择算法对所述卷积核和所述卷积输出通道进行量化包括:
选取量化误差符号和量化误差和符号相同的元素,作为候选量化元素;
按绝对量化误差的大小对所述候选量化元素进行降序排序;
选择前K个最大的绝对量化误差的元素进行翻转,其中,K的大小为绝对误差和。
9.根据权利要求8所述的基于无数据场景的神经网络实时量化方法,其特征在于:当所述卷积核或者所述输出通道的误差和为正数数时,选择尾数大于0.5的元素向下翻转;当所述卷积核或者所述输出通道的误差和为负数时,选择尾数小于0.5的元素向上翻转。
10.一种电子设备,其特征在于:包括存储器,用于存储计算机程序;处理器,用于运行所述计算机程序以实现如权利要求1至权利要求9任一权利要求所述的基于无数据场景的神经网络实时量化方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210774598.4A CN115034387A (zh) | 2022-07-01 | 2022-07-01 | 基于无数据场景的神经网络实时量化方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210774598.4A CN115034387A (zh) | 2022-07-01 | 2022-07-01 | 基于无数据场景的神经网络实时量化方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115034387A true CN115034387A (zh) | 2022-09-09 |
Family
ID=83129645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210774598.4A Pending CN115034387A (zh) | 2022-07-01 | 2022-07-01 | 基于无数据场景的神经网络实时量化方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115034387A (zh) |
-
2022
- 2022-07-01 CN CN202210774598.4A patent/CN115034387A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN108510067B (zh) | 基于工程化实现的卷积神经网络量化方法 | |
US20210350233A1 (en) | System and Method for Automated Precision Configuration for Deep Neural Networks | |
Kuzmin et al. | Fp8 quantization: The power of the exponent | |
KR20190068255A (ko) | 고정 소수점 뉴럴 네트워크를 생성하는 방법 및 장치 | |
JP2022513404A (ja) | トレーニング済み長短期記憶ニューラルネットワークの量子化 | |
CN110781686B (zh) | 一种语句相似度计算方法、装置及计算机设备 | |
KR102655950B1 (ko) | 뉴럴 네트워크의 고속 처리 방법 및 그 방법을 이용한 장치 | |
TWI744724B (zh) | 處理卷積神經網路的方法 | |
CN112633477A (zh) | 一种基于现场可编程阵列的量化神经网络加速方法 | |
CN114418089A (zh) | 模型压缩方法、系统、部署方法、设备及存储介质 | |
CN113780549A (zh) | 溢出感知的量化模型训练方法、装置、介质及终端设备 | |
WO2022035948A1 (en) | System and method for generating parametric activation functions | |
CN115238883A (zh) | 神经网络模型的训练方法、装置、设备及存储介质 | |
CN112257466A (zh) | 一种应用于小型机器翻译设备的模型压缩方法 | |
CN112561050B (zh) | 一种神经网络模型训练方法及装置 | |
CN115034387A (zh) | 基于无数据场景的神经网络实时量化方法及电子设备 | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN117348837A (zh) | 浮点精度模型的量化方法、装置、电子设备以及存储介质 | |
CN115496181A (zh) | 深度学习模型的芯片适配方法、装置、芯片及介质 | |
CN115564987A (zh) | 一种基于元学习的图像分类模型的训练方法及应用 | |
US20210216867A1 (en) | Information processing apparatus, neural network computation program, and neural network computation method | |
CN113887721A (zh) | 一种语音识别任务中的训练后量化压缩方法及系统 | |
WO2019165679A1 (zh) | 一种包括比特转换装置的神经网络处理器及其方法 | |
US20230385600A1 (en) | Optimizing method and computing apparatus for deep learning network and computer-readable storage medium |
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 |