CN110555508A - 人工神经网络调整方法和装置 - Google Patents
人工神经网络调整方法和装置 Download PDFInfo
- Publication number
- CN110555508A CN110555508A CN201810550168.8A CN201810550168A CN110555508A CN 110555508 A CN110555508 A CN 110555508A CN 201810550168 A CN201810550168 A CN 201810550168A CN 110555508 A CN110555508 A CN 110555508A
- Authority
- CN
- China
- Prior art keywords
- neural network
- bit
- point
- fixed
- network model
- 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.)
- Granted
Links
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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
Abstract
提供了一种调整人工神经网络(ANN)的方法和装置。ANN至少包括多个层,所述方法包括:获取待训练的神经网络模型;使用高比特定点量化来对所述神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型;使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型;以及输出所述经训练的带低比特定点量化的神经网络模型。本发明的位宽逐渐降低的神经网络训练方案兼顾神经网络的训练及部署,由此能够在极低位宽的情况下实现可以媲美浮点网络的计算精度。
Description
技术领域
本发明涉及人工神经网络(ANN),例如卷积神经网络(CNN),尤其涉及对神经网络的定点量化。
背景技术
基于人工神经网络(ANN,Artificial Neural Network),尤其是卷积神经网络(CNN,Convolutional Neural Network)的方法在很多应用中都取得了极大的成功。在计算机视觉领域,特别是针对图像分类问题,CNN的引入使得图像分类的精度大幅提高。
虽然基于CNN的方法具有先进的性能,但与传统方法相比需要更多的计算和内存资源。尤其随着神经网络的发展,大型神经网络具有越来越多的层级和数据量,这为神经网络的部署带来了巨大的挑战。尽管大多数基于CNN的方法需要依赖于大型服务器,但近年来,智能移动设备的普及也为神经网络压缩带来了机遇与挑战,例如许多嵌入式系统也希望具有由CNN方法实现的高精度实时目标识别功能。然而,将多层级和大数据量的CNN用于小型系统必须克服资源有限的问题。
现有CNN系统中多采用32位甚至更高位浮点数数字表示系统,然而在某些情况下,使用低位宽的定点数对神经网络的数据结果影响不大。鉴于现有CNN参数具备大量冗余的事实,可以通过神经网络定点化来大幅降低资源使用量。之前已经有工作对神经网络进行定点化研究。但现有的量化方法通常只考虑部署阶段而忽视训练阶段,或者是追求精度而不能很好的克服硬件的限制。
由此,需要一种更为简便有效的神经网络定点量化方法。
发明内容
为了解决如上至少一个问题,本发明提出了一种位宽降低的神经网络调整方案,该方案兼顾神经网络的训练及部署,能够在极低位宽的情况下实现可以媲美浮点网络的精度。
根据本发明的一个方面,提出了一种调整人工神经网络(ANN)的方法,其中所述ANN至少包括多个层,所述方法包括:获取待训练的神经网络模型;使用高比特定点量化来对所述神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型;使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型;以及输出所述经训练的带低比特定点量化的神经网络模型。通过高比特定点训练的过渡,能够最终得到易收敛且高精度的低比特定点网络。
使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调,优选地,可以逐位降低对初始高比特定点量化神经网络模型进行微调的定点比特数,直至目标低比特位宽为止,以获得经训练的目标低比特定点量化的神经网络模型。由此进一步提升定点网络的精度并降低收敛难度。在这其中,初始高比特位宽可以是目标低比特位宽的整数倍,以方便硬件部署与实现。
使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。由此,在逐位微调的基础上细化为逐层微调,进一步确保定点网络的正确收敛。
针对定点网络,可以以低学习率的定点梯度来对所述神经网络模型进行训练,所述梯度的定点位宽与所述神经网络模型的当前定点位宽相同。优选地,高比特定点量化时的学习率要大于低比特定点量化时的学习率,以进一步确保定点网络的正确收敛。
可以基于训练时激活值在每一层的取值分布范围,确定所述激活值在训练时针对该层的定点量化规则。另外,获得经训练的带低比特定点量化的神经网络模型还可以包括:确定针对所述带低比特定点量化的神经网络模型中多个层输出的激活值的定点量化规则,其中,所述定点量化规则是通过向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集,并基于每个测试图在每一层输出的激活值而确定的。由此,针对不同的场景合理确定各层激活值的量化规则。
定点量化包括对权重参数、梯度值和激活值的定点量化,并且基于权重参数和激活值的分布确定各层的定点量化规则,所述定点量化规则包括定点倍率和定点方式,所述定点方式包括线性定点和对数定点。对梯度值可以进行对数定点量化,对权重参数和激活值可以进行线性定点量化,以便在充分考虑应用场景的情况下提升计算效率并确保计算精度。
使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:保留特定层的高比特位宽。特定层例如可以是神经网络模型的最后一层分类器层。由此,通过对关键层精度的确保,提升网络整体的计算准确率。
本发明的调整方法还可以包括在至少部分包括FPGA、GPU和/或 ASIC的定点计算平台上使用输出的所述经训练的带低比特定点量化的神经网络模型执行推理。其中,低比特定点量化的位宽由所述FPGA、GPU 和/或ASIC规定的位宽决定。由此,通过合理部署凸显定点量化网络的高速低功耗运算优势。
根据本发明的又一个方面,提出了一种调整人工神经网络(ANN)的装置,其中所述ANN至少包括多个层,所述装置包括:获取装置,用于获取待训练的神经网络模型;位宽可变定点量化装置,用于使用高比特定点量化来对所述神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型,以及使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型;以及输出装置,用于输出所述经训练的带低比特定点量化的神经网络模型。
位宽可变定点量化装置可以进一步用于:基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调。
位宽可变定点量化装置还可进一步用于:在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。
位宽可变定点量化装置可以在训练低位宽神经网络模型的过程中保留特定层的高比特位宽,其中所述特定层包括所述神经网络模型的最后一层分类器层。
根据本发明的又一个方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的ANN调整方法。
根据本发明的另一个方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的ANN调整方法。
根据本发明的再一个方面,提出了一种定点计算平台,其至少部分由FPGA、GPU和/或ASIC构成,用于基于根据如上方法得到的所述定点神经网络模型进行推理计算。
本发明所提出的ANN调整方案能够针对神经网络模型进行位宽逐渐降低的多次量化。上述多次量化过程可以将低位宽定点网络带来的不稳定性通过多次训练和微调而加以分散。这其中,可以逐位下调网络的定点宽度,在每一位中又可逐层下调定点宽度,从而避免了定点训练中常见的收敛和振荡问题,同时能够保证最终所得定点网络的精度。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了典型的CNN的示意图。
图2示出了对CNN压缩、量化、编译从而实现优化加速的原理图。
图3A和3B示出了两种硬件友好的定点方法的例子。
图4A和4B示出了本发明的两种数值范围确定策略的示意图。
图5示出了根据本发明一个实施例的人脸识别神经网络调整方法的流程图。
图6示出了根据本发明一个实施例的人脸识别神经网络调整装置的示意图。
图7示出了根据本发明一个实施例可用于实现上述调整和部署方法的计算设备的结构示意图。
图8示出了可以部署经本发明获取的定点神经网络的SoC的一个例子。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本申请的方案适用于各种人工神经网络,包括深度神经网络(DNN)、循环神经网络(RNN)与卷积神经网络(CNN)。以下以CNN为例进行一定程度的背景说明。
CNN基本概念
CNN在广泛的视觉相关任务中都达到最先进的性能。为帮助理解本申请中分析的基于CNN的分类算法(例如,人脸识别算法),首先介绍 CNN的基础知识和定点量化的基本概念。
如图1所示,典型的CNN由一系列有序运行的层组成。
CNN神经网络由输入层、输出层和多个隐藏层串联组成。CNN的第一层读取输入值,例如输入图像,并输出一系列的激活值(也可称为特征图)。下面的层读取由上一层产生的激活值,并输出新的激活值。最后一个分类器(classifier)输出该输入图像可能属于的每一类别的概率。
这些层大致可分为带权重的层(如卷积层、全连接层、批量归一化层等)和不带权重的层(如池化层、ReLU层、Softmax层等)。在这其中, CONV层(Convolutional layers,卷积层)以一系列特征图作为输入,并以卷积内核卷积获得输出激活值。池化层通常与CONV层相连,用于输出每个特征图中的每个分区(sub area)的最大值或平均值,由此通过亚采样降低计算量,同时保持某种程度的位移、尺度和形变不变性。一个CNN中可以包括卷积层和池化层之间的多个交替,由此逐步降低空间分辨率并增加特征映射的数量。随后可以连接至至少一个全连接层,通过应用于输入特征向量上的线性变换,得到包括多个特征值的一维向量输出。
总体来说,带权重的层的操作可以表示为:
Y=WX+b,
其中W为权重值,b为偏移量,X为输入激活值,Y为输出激活值。
不带权重的层的操作可以表示为:
Y=f(X),
其中f(X)为非线性函数。
在此,“权重”(weights)指代隐藏层中的参数,从广义上理解可以包括偏移量,是通过训练过程习得的数值,并且在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。与权重值不同,激活值的分布会根据输入数据样本而动态变化。
在使用CNN进行推理(例如,图像分类)之前,首先需要对CNN进行训练。通过训练数据的大量导入,确定神经网络模型各层的参数,例如权重和偏移量。CNN的训练主要是在大型服务器上实现。对于嵌入式平台,例如包括FPGA的SoC平台,则专注于加速和实现CNN的推理过程。
图2示出了为了加速CNN从处理流程和硬件架构的角度提出的整套技术方案。图2左侧显示了人工神经网络模型,即要优化的目标。在图2 中间显示了如何通过去冗余来压缩、定点化、编译CNN模型,由此减少内存占用和操作数量,同时最大限度地减少精度损失。图2右侧显示了为压缩后的CNN提供的专用(小型化)硬件的一个例子。由于CNN进行的是并行计算,因此通过逻辑硬件,尤其是FPGA或ASIC来实现神经网络推理功能具有天然的计算优势,并且相比于软件执行,能够实现更低的功耗。
神经网络的定点量化
大型神经网络为了保证训练精度,通常在训练时采用浮点或更高精度。神经网络的冗余性和抗干扰性为将其转换为定点提供了可能。嵌入式和移动式硬件存储容量和计算能力有限,甚至没有浮点运算单元,定点量化为将复杂网络部署在这些设备上提供了可能。但是,量化的同时会降低神经网络的预测精度,目前神经网络量化研究的一大挑战在于如何在提高压缩比的同时保持预测精度。
定点量化的基本概念
在神经网络模型中的定点量化是指将一组高精度浮点数量化为低精度的定点值,实质是将一个连续的数据分布映射到有限的离散分布的过程,即:
X’=F1(X),
其中X为原浮点数值,X’为量化后的定点数值。在输出时,需要将量化后的定点数值还原为浮点数值,即:
X”=F2(X’),
其中X”为还原后浮点数值。还原后的数值与原浮点数值的差距称为量化误差,即:
Loss=∑(X-X”)^2。
常见的量化方法中的F1和F2函数为非线性函数或线性函数。采用线性量化使得定点值和浮点值之间为线性关系,减小了定浮点转换所需运算量。非线性的量化方式需要付出更多的计算代价(通常为非线性函数,如密码表)将其还原为浮点值,这增大了增加了量化和反量化的运算量。更重要的是,不同数据组之间的转换公式不一致,导致不同数据组之间进行运算时必须先还原为浮点值,使得定点运算带来的速度优势无法体现。因此,非线性量化通常不适用于神经网络部署阶段。在本发明中,优选使用线性定点来对神经网络推理计算中涉及的权重和激活值进行量化。而在训练阶段,可以针对梯度值进行对数定点,以实现更为高效的网络收敛学习过程。
图3A和3B示出了两种硬件友好的定点方法的例子。线性定点是对输入的均匀量化。例如,当输入矩阵为32bit浮点数时,可将最接近输入绝对值最大值的2的整数幂作为输出的范围,将输入均匀量化在此范围内。图3A示出了输入x范围为[-8,8],位宽为3时的线性量化输出例。对数定点时对输入进行指数形式的线性定点,是非线性定点的一种。当输入矩阵为32bit浮点数,同样可将最接近输入绝对值最大值的2的整数幂作为输出的范围,将输入的每个值量化到最接近该值的2的整数幂,并限制在输出范围内。图3B示出了输入x范围为[-8,8],位宽为3时的对数定点输入例。
对于神经网络而言,对权重和激活值的量化误差会导致网络的预测精度降低。复杂的量化方法可以减少对精度的影响,但是会增加计算量。神经网络的主要挑战在于减少计算量的同时尽可能保持推理精度。针对权重和激活值,本发明优选采用计算量最小的对称定点化倍率量化的方法,通过对运算过程的优化大幅提高神经网络推理速度,并通过优化量化倍率的选择策略使网络预测精度。
对称量化和定点化倍率量化
如上所述,本发明针对权重和激活值优选采用对称量化与定点化倍率量化的方法,通过对运算过程的优化大幅提高神经网络的推理速度。
在此,“对称量化”是指量化后的数据为与0对称分布,采用对称的量化可以使得反量化时无需存储数据相对零点的偏移量,且转换时仅需要乘法即可实现。例如在两定点数进行加法和乘法运算时可以完全去除偏移量的影响。采用对称量化与CNN网络中数据分布特性相吻合,因为实际 CNN神经网络中的数据通常呈现正态分布,近年来广泛采用的批量归一化层(BatchNorm)的应用更是使激活值的分布更趋向于以0为中心的正态分布,因此对称量化方法可以确保精度损失较低。
“定点化的量化倍率”是指量化是所缩放的倍率为2的整数次幂。如果采用浮点或者整数的倍率,会导致运算时多一次倍率的乘法运算,且在运算级联时需要多进行一次除法运算。而采用定点化的量化倍率后,可以将乘法运算简化为移位运算。
综上所述,本发明优选采用对称均匀定点化倍率量化的方法对一组数据进行量化,定点值和浮点值之间的转换公式如下:
浮点转定点:X’=[2^a*X],其中[]表示四舍五入操作
定点转浮点:X”=2^(-a)*X’
例如,在位宽为8bit的情况下,定点倍率为0时(即,无缩放时),能够以1为单位表示从{-128~127}的数字。对于输入的一组浮点数字{- 6.0625,-8.0813,4.438},由于该组数字的动态范围={-8.0813~4.438},可以选择刚好能够涵盖该组数组的定点位置。例如,可以将定点位置设为-3(量化倍率为2^-3),由此能够以0.125为单位表示从{-16,15.875}的范围。由此,该组数字的浮点值、存储值和还原值如下:
浮点值 | 定点-存储值(P=-3) | 定点-还原值 |
-6.0625 | -49 | -6.125 |
-8.0813 | -64 | -8 |
4.438 | 36 | 4.5 |
基于以上提出的对称和定点化倍率量化方法,可以将神经网络中的浮点运算全部转为定点运算而无需在过程中引入大量的额外运算。神经网络推理中常见的计算操作为矩阵乘法和加法,他们也是所有线性运算的基础,因此下面主要描述针对这两种运算进行优化。具体如下:
假设Y、W、X的量化倍率分别为2^a,2^b,2^c,即:
Y’=(2^a)Y,W’=(2^b)W,X’=(2^c)X,
则浮点矩阵乘法可以表示为:Y=W*X;对应的定点乘法可表示为:
Y’=2^(a-b-c)W’*X’,
即,原浮点矩阵乘法转换为了定点矩阵乘法与1次移位操作。相应地,浮点矩阵加法可以表示为:Y=W+X;对应的定点加法可表示为:
Y’=2^(a-b)(W’+2^(b-c)X’),
即,原浮点矩阵加法转换为了定点加法与2次移位操作。
按照乘法和加法的转换方式推广,其他的非线性或线性运算均可采用类似方式,转换为定点的运算和移位操作的组合实现。因此只需要对应的硬件支持该定点运算,均可进行加速。
如上所述的对称和定点化倍率量化着重于讨论给定数值范围内的具体分布,但上述数值范围的确定也可以根据不同的策略进行优化。
级联运算的影响
人工神经网络由多层级联组成,即,由上下多层串联而成。在采用本发明中的量化方法时,除了输入输出之外,中间的所有乘加运算均可由定点的乘加运算和移位操作组成。当级联时,只需记录每一层的量化倍率,在本层运算完成后将结果通过移位操作转换为下一层的量化倍率表示即可。所有运算的中间全部采用定点运算,在最后一层输出时进行定浮点转换。
因此,基于以上方法,可以将CNN神经网络中的浮点运算全部转化为定点运算并且定点运算可以级联进行,中途无需引入浮点运算或者额外的乘法运算,可以大幅提高量化后网络的预测速度。
量化精度优化
CNN神经网络中的多层量化误差的积累会对神经网络推理结果的准确性造成不利影响。为了最小化量化后网络的预测精度损失,需要不断优化不同数据分布下的量化倍率设置,使得量化误差尽可能小。本发明提出了两种优化量化倍率的策略,可以根据具体应用情况提升定点网络的推理预测精度。图4A和4B示出了本发明的两种数值范围确定策略的示意图。
1.无溢出量化策略
越大的量化倍率意味着越高的量化精度,但是对应的浮点的动态范围越小。此策略保证在所有的数据量化时无溢出的情况下选择的量化倍率尽可能大,从而使得所有数的量化后精度尽可能高。
首先求出浮点值的动态范围,由于是对称量化,即求所有数的绝对值最大值,然后取2^[log2(MAX)](其中[]为向上取整)作为量化后的量化倍率。如图4A所示,2^N>max(MAX,-MIN)>2^(N-1),则选取2^N作为量化倍率。此方法的优点是保证量化后的动态范围大于浮点动态范围,无数据溢出损失,缺点是易受到个别极端值得影响,总体的量化后精度可能降低。
2.最小化距离策略
此策略在允许数据溢出的情况下选择使量化后精度最高的量化倍率,如上图4B所示,选择2^(N-1)作为量化倍率时,虽然有部分数据溢出,但是由于数据分布集中在0附近,最后的量化误差会更小。通过选择比无溢出量化策略更小的量化倍率可能使得量化误差更小。更小的量化倍率会导致量化后数值动态范围变小,必然有部分浮点数值会超出此动态范围,因此需要对量化后的数值其进行饱和处理。
实验结果显示对整个网络完成量化后最小化距离策略够取得比无溢出量化策略更高的预测精度,但是需要更多的时间用于搜索最优的量化倍率。在实际应用中时间充分时,可以分别应用两种方式做量化后选择使网络推理预测精度更高的策略。
本发明的ANN调整方案
现有的定点模型训练通常需要从初始随机参数开始训练,需要耗费数天至数周的时间和算力。上述训练需要大量的高质量带标注数据,大多数情况下各公司的数据集不对外公开或售价昂贵,而开源数据集通常无法满足实际场景要求。另外,由于反向传播中的求导操作需要参数变化连续,由离散的参数值求导难度较大,且求出的导数值通常较小且要求精度较高,如果用定点导数值进行更新则有可能无法收敛。实验结果也表明从初始随机参数开始进行定点网络的训练通常无法达到与浮点可比拟的精度,且所需训练时间更长。
现有定点模型的另一种实现则是针对训练好的浮点神经网络模型,通过定点算法将浮点时间网络转为定点神经网络模型再在硬件平台上部署。这类实现由于仅对推理阶段定点,训练阶段仍然需要进行繁琐的浮点训练。另外,浮点转定点的部署会对计算精度产生较大影响。
鉴于现有定点方案的诸多不足,本发明提出了一种全新的用于人工神经网络ANN(尤其是深度卷积神经网络CNN)的定点方案。本方案使用高比特位宽来对神经网络进行直接定点训练,在根据预定规则逐渐降低神经网络的定点位宽。由此,能够在确保网络稳定收敛的同时最终获取低位宽且高精度的定点量化神经网络。
图5示出了根据本发明一个实施例的ANN调整方法的流程图。ANN 可以是如上结合图1描述的CNN,尤其是深度卷积神经网络,并且至少包括多个层。
如图5所示,在步骤S510,获取待训练的神经网络模型。可以根据具体情况,经由各种手段获取上述神经网络模型。本发明对此不做限制。
在步骤S520,使用高比特定点量化来对神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型。例如,可以使用16比特位宽来对神经网络模型进行训练,以获取16比特定点量化神经网络。
在步骤S530,使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型。例如,可以使用 8比特位宽来对经训练的16比特神经网络模型进行训练,以获取带8比特定点量化的神经网络模型。在此,“带低比特定点量化的神经网络模型”指代有一层或多层是以该低比特定点量化的网络模型。换句话说,该神经网络模型可以是所有层都被该低比特量化的,也可以是部分被该低比特量化,其他部分保持高比特的神经网络。具体实现将在下文详述。
随后在步骤S540,输出经训练的带低比特定点量化的神经网络模型。例如,输入上述带8比特定点量化的神经网络模型。
由此,本发明经由位宽降低的神经网络训练而能够在确保网络稳定收敛的同时最终获取低位宽且高精度的定点量化神经网络。
在本发明的技术方案中,上述位宽降低可以是基于预定规则的多次逐渐降低。在一个实施例中,可以基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调。例如,可以首先训练一个16比特位宽的定点神经网络模型。随后在该16比特位宽模型的基础上,微调至例如12比特位宽的网络模型。在该12比特位宽模型的基础上,微调至例如10比特位宽的网络模型。最后,在该10比特位宽模型的基础上,微调至目标位宽,例如8比特位宽的定点量化神经网络模型。在一个优选实施例中,可以逐位降低对初始高比特定点量化神经网络模型进行微调的定点比特数,直至目标低比特位宽为止,以获得经训练的目标低比特定点量化的神经网络模型。例如,对于最初训练得到的16比特位宽定点量化模型,可以逐比特地对网络进行微调,例如基于16比特网络微调得到15比特网络,基于15比特网络微调得到14比特网络,并以此类推,直至获得例如目标位宽为8比特的定点量化神经网络模型。
在本发明中,针对定点神经网络模型的降比特微调,可以是全网络各层同时降比特,也可以对网络中的各个层按照预定的顺序进行降比特微调。在一个实施例中,在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。例如,在将16比特位宽的神经网络微调至15比特位宽的过程中,可以从接近输入层的低层开始,逐层降低各层位宽,或者按照一定规则,每次降低一层或多层的位宽,并在多次操作之后获取15比特位宽的定点网络。随后,可以针对更低比特的网络微调重复上述过程。
在使用低比特对所述高比特定点量化神经网络模型进行微调时,可以保持特定层的高比特位宽,甚至可以保持特定层的浮点运算。这是因为有些层的定点以及定点精度对网络整体的分类准确性有较大影响,或者有些层在网络部署阶段通常不被用到,于是可以保持特定层的高比特位宽甚至是浮点运算。
对于某些神经网络推理任务,例如人脸识别任务,可以保持最后一层不定点或是高比特定点(例如,在朝向8比特位宽的微调过程中一直保持 16比特定点)。针对人脸识别任务的特殊性,一般取倒数第二层全连接层的输出作为特征进行匹配,因此在部署阶段不需要用到最后一层做计算,此层可以保持浮点。而在训练过程中,最后一层对精度影响较大,保持浮点能够对精度有较大的提升,与此同时仅带来少量的硬件开销。因此,该保持高比特位宽或浮点的特定层可以是神经网络模型的最后一层,即,用于分类的全连接层。在其他实施例中,也可以根据需要保持其他层(例如,第一层)的高比特位宽或浮点实现。在一个实施例中,本发明的初始高比特位宽是目标低比特位宽的整数倍。目标低比特位宽可以是部署经定点量化所得计算网络的硬件带宽。由此,在保持特定层的高比特位宽量化时,能够相对高效的实现针对特定层的计算。
在CNN的训练过程,在网络模型已经确定的情况下,是找出该模型所需的权重和偏移以使得网络的输出y(x)能够拟合所有的训练输入x的过程。为了量化这个目标,通常需要定义一个目标函数(也称为代价函数,或损失函数)。为了找到一系列能让代价尽可能小的权重和偏差,通常可以采用梯度下降算法来实现这一目的。
因此,在本发明的神经网络的训练和微调的过程中,定点量化包括对权重参数、梯度值和激活值的定点量化。梯度值仅仅在训练和微调过程中涉及,而在网络部署和推理过程中则无需考虑。因此,在定点量化的方式选择时,可以为梯度值量化选择准确损失率更小的对数量化方式。
在定点网络中,由于定点数取值有限,因此需要以低学习率的定点梯度来对所述神经网络模型进行训练,所述梯度的定点位宽与所述神经网络模型的当前定点位宽相同。另外,高比特定点量化时的学习率可以大于所述低比特定点量化时的学习率。由于本发明的方案涉及从高位宽到低位宽的逐步微调,因此能够避免因学习率过大造成的梯度更新过快,并避免由此产生的损失振荡和网络不收敛等问题。
在网络部署和推理阶段涉及权重参数和激活值的量化。“权重”指代隐藏层中的参数(广义上也包括偏移量),是通过训练学习到的数值,在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。在输入为图像的情况下,上述特征值也可被称为“特征图”。与权重值不同,激活值的分布会根据输入数据样本动态变化。因此训练阶段可以基于权重参数和激活值的分布确定各层的定点量化规则,定点量化规则包括定点倍率和定点方式,定点方式包括线性定点和对数定点。出于计算效率的考虑,通常为权重和激活值的量化选择线性定点的方式。
通过将权重从浮点值变为低位宽的定点值,可以大幅减小神经网络模型的体积。由于不同层的权重数值分布不同,因此可以针对浮点神经网络模型中每个带权重的层的权重分别进行定点量化。针对神经网络模型中多个层输出的激活值的定点量化可以包括在训练时根据激活值的分布选择定点方式和倍率。另外,由于激活值并非神经网络的参数,无法在网络优化阶段具体求出激活值本身,因此激活值量化还可以为部署和推理阶段习得各层的激活值的定点量化规则,例如,习得各层激活值进行定点量化的数值范围及其分布位置和均匀性。由此,通过在推理运算时将激活值也按照确定的量化规则进一步量化为定点值,可将浮点运算转换为定点运算,大幅提高神经网络的推理速度。例如,可以通过向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集,并基于每个测试图在每一层输出的激活值来确定要在推理计算时使用的每层激活值的定点量化规则。
在此,可以将激活值定点量化规则的学习过程称为“校准”,如下将以量化倍率为例进行描述。由于激活值的动态范围随着输入样本改变,因此需要选择有代表性的输入数据集以分析得到真实的激活值范围。
例如,对于1000分类的任务,可以每一个类别选择3张图片,共3000 张图片作为输入依次进行校准学习。这个校准数据集可以由训练用数据集中筛选得到,也可以有测试数据集或者应用场景采集得到,通常数量比训练用数据集小很多,且无需标注(只进行推测而不进行训练,因此无需标注)。校准数据集的与实际应用场景越相似,数量越多,则最后校准的得到量化倍率越准确。另外由于上层的激活值会影响下层的输入,因此需要从上往下逐层量化。在输入了全部的校准数据集,例如,3000张图片之后,可以根据每张测试图片在每一层输出的激活值数值范围进行针对该层输出的激活值数值范围的定点量化。输入至下一层的激活值数值优选是经过定点量化的。
ANN调整装置
本发明的上述ANN调整方法可由特定的ANN调整装置实现。图6示出了根据本发明一个实施例的ANN调整装置的示意图。如图所示,ANN 调整装置600可以包括获取装置610、位宽可变定点量化装置620和输出装置630。获取装置610用于获取神经网络模型。量化装置620用于对所述神经网络模型进行从高位宽到低位宽的多次定点量化。输出装置630则用于输出经定点量化的定点神经网络模型。
位宽可变定点量化装置620可以使用高比特定点量化来对所述神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型,并且可以使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型。具体地,该位宽可变定点量化装置620可以基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调,例如,可以在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。
优选地,位宽可变定点量化装置620可以在训练低位宽神经网络模型的过程中保留特定层的高比特位宽。该特定层可以包括神经网络模型最后一层,即用作分类器的全连接层。
可以理解的是,上述调整装置600可以进行如上结合图5描述的根据本发明的任何调整操作,在此不再赘述。
图7示出了根据本发明一个实施例可用于实现上述调整方法的计算设备的结构示意图。
参见图7,计算设备700包括存储器710和处理器720。
处理器720可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器720可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器720可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器710可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器720或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器710可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器710 可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器710上存储有可处理代码,当可处理代码被处理器720处理时,可以使处理器720执行上文述及的直接定点方法。在一个实施例中,上文述及的压缩编译器可以实现为压缩编译程序,同样可由存储器710存储,并由处理器720执行。
在实际使用中,上述计算设备700可以是包括大容量存储装置710和 CPU 720的通用计算设备。该通用计算设备可以与专用于执行神经网络计算且至少部分由数字电路实现的定点计算平台相结合,以实现高效的神经网络计算。在一个实施例中,本发明的神经网络计算系统可以在包括通用处理器、存储器和数字电路的片上系统(SoC)实现。图8示出了可以使用经由本发明获取的定点神经网络的SoC的一个例子。
在一个实施例中,可由SoC上的数字电路部分(例如,FPGA)来实现本系统所需的深度学习网络,例如深度卷积神经网络。例如,使用FPGA 或主要由FPGA组成的DPU来实现根据本发明所获得的二进制代码的具体执行部。由于CNN进行的是并行计算,因此通过逻辑硬件,尤其是FPGA 来实现神经网络计算功能具有天然优势,并且相比于软件执行,能够实现更低的功耗。
在一个实施例中,可以首先将定点神经网络模型及其参数存储在片上系统的存储器(例如,主存储器)中,在随后进行神经网络计算或推理(例如,目标检测)时,可由图8所示的可编程逻辑模块(例如,实现为DPU) 进行执行。由此通过减小权重占据的存储空间以及将浮点计算定点化来提升计算系统的整体运行效率。应该理解的是,还可以使用图8所示以外的其他架构来实现通用计算系统与异构计算系统(例如,DPU)的高效结合,这些架构都能够执行基于本发明方案获取的定点神经网络。例如,根据本发明的调整方案获取的定点ANN可以在至少部分由FPGA、GPU和/或 ASIC实现的定点计算平台上执行,上述计算中涉及的定点位宽可由硬件电路的位宽所决定。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可由执行规定的功能或操作的专用的基于硬件的系统实现,或者可由专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (22)
1.一种调整人工神经网络(ANN)的方法,其中所述ANN至少包括多个层,所述方法包括:
获取待训练的神经网络模型;
使用高比特定点量化来对所述神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型;
使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型;以及
输出所述经训练的带低比特定点量化的神经网络模型。
2.如权利要求1所述的方法,其中,使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:
基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调。
3.如权利要求2所述的方法,其中,基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调包括:
逐位降低对初始高比特定点量化神经网络模型进行微调的定点比特数,直至目标低比特位宽为止,以获得经训练的目标低比特定点量化的神经网络模型。
4.如权利要求3所述的方法,其中,所述初始高比特位宽是所述目标低比特位宽的整数倍。
5.如权利要求1所述的方法,其中,使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:
在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。
6.如权利要求1所述的方法,其中,以低学习率的定点梯度来对所述神经网络模型进行训练,所述梯度的定点位宽与所述神经网络模型的当前定点位宽相同。
7.如权利要求6所述的方法,其中,所述高比特定点量化时的学习率要大于所述低比特定点量化时的学习率。
8.如权利要求1所述的方法,其中,基于训练时激活值在每一层的取值分布范围,确定所述激活值在训练时针对该层的定点量化规则。
9.如权利要求1所述的方法,其中,获得经训练的带低比特定点量化的神经网络模型包括:
确定针对所述带低比特定点量化的神经网络模型中多个层输出的激活值的定点量化规则,其中,所述定点量化规则是通过向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集,并基于每个测试图在每一层输出的激活值而确定的。
10.如权利要求1所述的方法,其中,定点量化包括对权重参数、梯度值和激活值的定点量化,并且基于所述权重参数和激活值的分布确定各层的定点量化规则,所述定点量化规则包括定点倍率和定点方式,所述定点方式包括线性定点和对数定点。
11.如权利要求10所述的方法,其中,对梯度值进行对数定点量化,对权重参数和激活值进行线性定点量化。
12.如权利要求1所述的方法,其中,使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:
保留特定层的高比特位宽。
13.如权利要求12所述的方法,其中,所述特定层包括所述神经网络模型的最后一层分类器层。
14.如权利要求1所述的方法,还包括:
在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上使用输出的所述经训练的带低比特定点量化的神经网络模型执行推理。
15.如权利要求14所述的方法,其中,所述低比特定点量化的位宽由所述FPGA、GPU和/或ASIC规定的位宽决定。
16.一种调整人工神经网络(ANN)的装置,其中所述ANN至少包括多个层,所述装置包括:
获取装置,用于获取待训练的神经网络模型;
位宽可变定点量化装置,用于使用高比特定点量化来对所述神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型,以及使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型;以及
输出装置,用于输出所述经训练的带低比特定点量化的神经网络模型。
17.如权利要求16所述的装置,其中,所述位宽可变定点量化装置进一步用于:
基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调。
18.如权利要求16所述的装置,其中,所述位宽可变定点量化装置进一步用于:
在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。
19.如权利要求16所述的装置,其中,所述位宽可变定点量化装置在训练低位宽神经网络模型的过程中保留特定层的高比特位宽,其中所述特定层包括所述神经网络模型的最后一层分类器层。
20.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-15中任一项所述的方法。
21.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-15中任一项所述的方法。
22.一种定点计算平台,至少部分由FPGA、GPU和/或ASIC构成,用于基于根据权利要求1-15中任一项得到的所述经训练的带低比特定点量化的神经网络模型进行推理计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550168.8A CN110555508B (zh) | 2018-05-31 | 2018-05-31 | 人工神经网络调整方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550168.8A CN110555508B (zh) | 2018-05-31 | 2018-05-31 | 人工神经网络调整方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110555508A true CN110555508A (zh) | 2019-12-10 |
CN110555508B CN110555508B (zh) | 2022-07-12 |
Family
ID=68733808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810550168.8A Active CN110555508B (zh) | 2018-05-31 | 2018-05-31 | 人工神经网络调整方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110555508B (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111598227A (zh) * | 2020-05-20 | 2020-08-28 | 字节跳动有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN111598237A (zh) * | 2020-05-21 | 2020-08-28 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
CN111767984A (zh) * | 2020-06-09 | 2020-10-13 | 云知声智能科技股份有限公司 | 一种基于固定移位的8位整型全量化推理方法及装置 |
CN111985495A (zh) * | 2020-07-09 | 2020-11-24 | 珠海亿智电子科技有限公司 | 模型部署方法、装置、系统及存储介质 |
CN112308226A (zh) * | 2020-08-03 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 神经网络模型的量化、用于输出信息的方法和装置 |
CN112884146A (zh) * | 2021-02-25 | 2021-06-01 | 香港理工大学深圳研究院 | 一种训练基于数据量化与硬件加速的模型的方法及系统 |
WO2021135707A1 (zh) * | 2019-12-31 | 2021-07-08 | 华为技术有限公司 | 机器学习模型的搜索方法及相关装置、设备 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
CN113408715A (zh) * | 2020-03-17 | 2021-09-17 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
CN113468935A (zh) * | 2020-05-08 | 2021-10-01 | 上海齐感电子信息科技有限公司 | 人脸识别方法 |
CN113593538A (zh) * | 2021-09-02 | 2021-11-02 | 北京声智科技有限公司 | 语音特征的分类方法、相关设备及可读存储介质 |
CN113780513A (zh) * | 2020-06-10 | 2021-12-10 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN113971457A (zh) * | 2021-10-29 | 2022-01-25 | 苏州浪潮智能科技有限公司 | 一种神经网络的计算性能优化方法及系统 |
CN114386588A (zh) * | 2022-03-23 | 2022-04-22 | 杭州雄迈集成电路技术股份有限公司 | 神经网络量化方法和装置、神经网络推理方法和系统 |
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
WO2022222649A1 (zh) * | 2021-04-23 | 2022-10-27 | Oppo广东移动通信有限公司 | 神经网络模型的训练方法、装置、设备及存储介质 |
WO2023035053A1 (en) * | 2021-09-08 | 2023-03-16 | Huawei Technologies Co., Ltd. | Method and system for emulating a floating-point unit |
CN116384452A (zh) * | 2023-05-16 | 2023-07-04 | 北京爱芯科技有限公司 | 动态网络模型构建方法、装置、设备及存储介质 |
WO2023193190A1 (en) * | 2022-04-07 | 2023-10-12 | Nvidia Corporation | Adjusting precision of neural network weight parameters |
CN117077740A (zh) * | 2023-09-25 | 2023-11-17 | 荣耀终端有限公司 | 模型量化方法和设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107688855A (zh) * | 2016-08-12 | 2018-02-13 | 北京深鉴科技有限公司 | 针对于复杂神经网络的分层量化方法与装置 |
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
US20180046894A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Method for optimizing an artificial neural network (ann) |
WO2018076331A1 (zh) * | 2016-10-31 | 2018-05-03 | 北京中科寒武纪科技有限公司 | 一种神经网络训练方法及装置 |
CN108009625A (zh) * | 2016-11-01 | 2018-05-08 | 北京深鉴科技有限公司 | 人工神经网络定点化后的微调方法和装置 |
-
2018
- 2018-05-31 CN CN201810550168.8A patent/CN110555508B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107688855A (zh) * | 2016-08-12 | 2018-02-13 | 北京深鉴科技有限公司 | 针对于复杂神经网络的分层量化方法与装置 |
US20180046894A1 (en) * | 2016-08-12 | 2018-02-15 | DeePhi Technology Co., Ltd. | Method for optimizing an artificial neural network (ann) |
WO2018076331A1 (zh) * | 2016-10-31 | 2018-05-03 | 北京中科寒武纪科技有限公司 | 一种神经网络训练方法及装置 |
CN108009625A (zh) * | 2016-11-01 | 2018-05-08 | 北京深鉴科技有限公司 | 人工神经网络定点化后的微调方法和装置 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
Non-Patent Citations (3)
Title |
---|
BENOIT ET AL: "Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference", 《ARXIV:1712.05877V1》 * |
CHEN XI ET AL: "FxpNet: Training a Deep Convolutional Neural Network in Fixed-Point Representation", 《 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN)》 * |
HASHEMI ET AL: "Understanding the Impact of Precision Quantization on the Accuracy and Energy of Neural Networks", 《 20TH CONFERENCE AND EXHIBITION ON DESIGN, AUTOMATION AND TEST IN EUROPE (DATE)》 * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021135707A1 (zh) * | 2019-12-31 | 2021-07-08 | 华为技术有限公司 | 机器学习模型的搜索方法及相关装置、设备 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
CN113408715A (zh) * | 2020-03-17 | 2021-09-17 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
WO2021185125A1 (zh) * | 2020-03-17 | 2021-09-23 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
CN113468935B (zh) * | 2020-05-08 | 2024-04-02 | 上海齐感电子信息科技有限公司 | 人脸识别方法 |
CN113468935A (zh) * | 2020-05-08 | 2021-10-01 | 上海齐感电子信息科技有限公司 | 人脸识别方法 |
CN111598227B (zh) * | 2020-05-20 | 2023-11-03 | 字节跳动有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN111598227A (zh) * | 2020-05-20 | 2020-08-28 | 字节跳动有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
WO2021233069A1 (zh) * | 2020-05-21 | 2021-11-25 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
CN111598237A (zh) * | 2020-05-21 | 2020-08-28 | 上海商汤智能科技有限公司 | 量化训练、图像处理方法及装置、存储介质 |
CN111767984A (zh) * | 2020-06-09 | 2020-10-13 | 云知声智能科技股份有限公司 | 一种基于固定移位的8位整型全量化推理方法及装置 |
CN113780513B (zh) * | 2020-06-10 | 2024-05-03 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN113780513A (zh) * | 2020-06-10 | 2021-12-10 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN111985495A (zh) * | 2020-07-09 | 2020-11-24 | 珠海亿智电子科技有限公司 | 模型部署方法、装置、系统及存储介质 |
CN111985495B (zh) * | 2020-07-09 | 2024-02-02 | 珠海亿智电子科技有限公司 | 模型部署方法、装置、系统及存储介质 |
CN112308226A (zh) * | 2020-08-03 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 神经网络模型的量化、用于输出信息的方法和装置 |
CN112884146B (zh) * | 2021-02-25 | 2024-02-13 | 香港理工大学深圳研究院 | 一种训练基于数据量化与硬件加速的模型的方法及系统 |
CN112884146A (zh) * | 2021-02-25 | 2021-06-01 | 香港理工大学深圳研究院 | 一种训练基于数据量化与硬件加速的模型的方法及系统 |
WO2022222649A1 (zh) * | 2021-04-23 | 2022-10-27 | Oppo广东移动通信有限公司 | 神经网络模型的训练方法、装置、设备及存储介质 |
CN113593538B (zh) * | 2021-09-02 | 2024-05-03 | 北京声智科技有限公司 | 语音特征的分类方法、相关设备及可读存储介质 |
CN113593538A (zh) * | 2021-09-02 | 2021-11-02 | 北京声智科技有限公司 | 语音特征的分类方法、相关设备及可读存储介质 |
WO2023035053A1 (en) * | 2021-09-08 | 2023-03-16 | Huawei Technologies Co., Ltd. | Method and system for emulating a floating-point unit |
CN113971457B (zh) * | 2021-10-29 | 2024-02-02 | 苏州浪潮智能科技有限公司 | 一种神经网络的计算性能优化方法及系统 |
CN113971457A (zh) * | 2021-10-29 | 2022-01-25 | 苏州浪潮智能科技有限公司 | 一种神经网络的计算性能优化方法及系统 |
CN114386588B (zh) * | 2022-03-23 | 2022-07-29 | 杭州雄迈集成电路技术股份有限公司 | 神经网络推理方法和系统 |
CN114386588A (zh) * | 2022-03-23 | 2022-04-22 | 杭州雄迈集成电路技术股份有限公司 | 神经网络量化方法和装置、神经网络推理方法和系统 |
WO2023193190A1 (en) * | 2022-04-07 | 2023-10-12 | Nvidia Corporation | Adjusting precision of neural network weight parameters |
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
CN116384452B (zh) * | 2023-05-16 | 2023-12-15 | 北京爱芯科技有限公司 | 动态网络模型构建方法、装置、设备及存储介质 |
CN116384452A (zh) * | 2023-05-16 | 2023-07-04 | 北京爱芯科技有限公司 | 动态网络模型构建方法、装置、设备及存储介质 |
CN117077740B (zh) * | 2023-09-25 | 2024-03-12 | 荣耀终端有限公司 | 模型量化方法和设备 |
CN117077740A (zh) * | 2023-09-25 | 2023-11-17 | 荣耀终端有限公司 | 模型量化方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110555508B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555508B (zh) | 人工神经网络调整方法和装置 | |
CN110555450B (zh) | 人脸识别神经网络调整方法和装置 | |
CN110413255B (zh) | 人工神经网络调整方法和装置 | |
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN110222821B (zh) | 基于权重分布的卷积神经网络低位宽量化方法 | |
US11580719B2 (en) | Dynamic quantization for deep neural network inference system and method | |
CN108337000B (zh) | 用于转换到较低精度数据格式的自动方法 | |
CN110880038B (zh) | 基于fpga的加速卷积计算的系统、卷积神经网络 | |
WO2021036904A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
WO2021036908A1 (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
TW201918939A (zh) | 用於學習低精度神經網路的方法及裝置 | |
US11714998B2 (en) | Accelerating neural networks with low precision-based multiplication and exploiting sparsity in higher order bits | |
CN112508125A (zh) | 一种图像检测模型的高效全整数量化方法 | |
US11704556B2 (en) | Optimization methods for quantization of neural network models | |
CN111860841B (zh) | 量化模型的优化方法、装置、终端及存储介质 | |
CN115483957B (zh) | Ris辅助通信系统的相位调控方法、装置、电子设备及介质 | |
CN114972850A (zh) | 多分支网络的分发推理方法、装置、电子设备及存储介质 | |
CN113947177A (zh) | 一种量化校准方法、计算装置和计算机可读存储介质 | |
Choi et al. | Approximate computing techniques for deep neural networks | |
CN112085176A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US11699077B2 (en) | Multi-layer neural network system and method | |
CN114298291A (zh) | 一种模型量化处理系统及一种模型量化处理方法 | |
CN110633722B (zh) | 人工神经网络调整方法和装置 | |
CN112085187A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113177627B (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200904 Address after: Unit 01-19, 10 / F, 101, 6 / F, building 5, yard 5, Anding Road, Chaoyang District, Beijing 100029 Applicant after: Xilinx Electronic Technology (Beijing) Co.,Ltd. Address before: 100083, 17 floor, four building four, 1 Wang Zhuang Road, Haidian District, Beijing. Applicant before: BEIJING DEEPHI INTELLIGENT TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |