CN110555450A - 人脸识别神经网络调整方法和装置 - Google Patents
人脸识别神经网络调整方法和装置 Download PDFInfo
- Publication number
- CN110555450A CN110555450A CN201810550169.2A CN201810550169A CN110555450A CN 110555450 A CN110555450 A CN 110555450A CN 201810550169 A CN201810550169 A CN 201810550169A CN 110555450 A CN110555450 A CN 110555450A
- Authority
- CN
- China
- Prior art keywords
- neural network
- network model
- fixed
- point
- quantization
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/172—Classification, e.g. identification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
提出了一种针对人脸识别神经网络进行调整和部署的方法与装置。人脸识别神经网络至少包括多个卷积层和至少一个全连接层,最后一个全连接层是用于分类的分类器,并且所述方法包括:获取待训练的神经网络模型;使用定点量化来对所述神经网络模型进行训练,以获得经训练的定点量化神经网络模型,其中所述最后一个全连接层在训练过程中保持浮点;以及输出不带所述最后一个全连接层的所述经训练的定点量化的神经网络模型。由此,利用人脸识别网络的特殊性,通过在训练阶段保持对网络整体精度有较大影响的分类器层不定点并且不再输入网络中包括该分类器层,能够在确保训练出的定点神经网络具有高精度的同时避免网络部署时额外的算力需求。
Description
技术领域
本发明涉及深度学习,尤其涉及对人脸识别神经网络的定点量化。
背景技术
在机器学习诞生之初,人脸识别就是其中一个最为基础的应用领域。近年来随着深度学习的不断发展与进步,人脸识别的精度也随之迅猛上升,甚至在多个评测集上超过人类水平。因此,人脸识别也开始在诸如智能电话、智能监控摄像头等的生活场景中得到应用。
但实际应用场景中算力和功耗的限制在严重制约着人脸识别技术的推广部署。鉴于现有神经网络参数具备大量冗余的事实,可以通过神经网络定点化来大幅降低资源使用量。由此,如何在算力和功耗有限的硬件上训练并有效部署定点人脸识别神经网络是一个必须解决的问题。
由此,需要一种更为简便有效的人脸识别神经网络定点量化方法。
发明内容
为了解决如上至少一个问题,本发明提出了一种针对人脸识别神经网络调整方案,该方案通过在定点过程中保持关键层的浮点运算来确保定点网络的准确性。另一方面,由于该关键层在部署阶段会被省略,因此其不会额外消耗定点网络部署后的算力。
根据本发明的一个方面,提出了一种调整人脸识别神经网络的方法,其中所述人脸识别神经网络至少包括多个卷积层和至少一个全连接层,最后一个全连接层是用于分类的分类器,所述方法包括:获取待训练的神经网络模型;使用定点量化来对所述神经网络模型进行训练,以获得经训练的定点量化神经网络模型,其中所述最后一个全连接层在训练过程中保持浮点;以及输出不带所述最后一个全连接层的所述经训练的定点量化的神经网络模型。由此,利用人脸识别网络的特殊性,通过在训练阶段保持对网络整体精度有较大影响的分类器层不定点并且不再输入网络中包括该分类器层,能够在确保训练出的定点神经网络具有高精度的同时避免网络部署时额外的算力需求。
使用定点量化来对所述神经网络模型进行训练可以包括:以约束逐渐变强的损失函数对所述神经网络模型进行迭代训练。例如,可以以弱约束损失函数训练出基础定点神经网络模型;基于所述基础定点神经网络模型,以强约束损失函数训练得到所述经训练的定点量化神经网络模型。
另外,还基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调,优选地,可以逐位降低对初始高比特定点量化神经网络模型进行微调的定点比特数,直至目标低比特位宽为止,以获得经训练的目标低比特定点量化的神经网络模型。由此进一步提升定点网络的精度并降低收敛难度。在这其中,初始高比特位宽可以是目标低比特位宽的整数倍,以方便硬件部署与实现。
使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。由此,在逐位微调的基础上细化为逐层微调,进一步确保定点网络的正确收敛。
针对定点网络,可以以低学习率的定点梯度来对所述神经网络模型进行训练,所述梯度的定点位宽与所述神经网络模型的当前定点位宽相同。优选地,高比特定点量化时的学习率要大于低比特定点量化时的学习率,以进一步确保定点网络的正确收敛。
定点量化包括对权重参数、梯度值和激活值的定点量化,并且基于权重参数和激活值的分布确定各层的定点量化规则,所述定点量化规则包括定点倍率和定点方式,所述定点方式包括线性定点和对数定点。对梯度值可以进行对数定点量化或线形定点,对权重参数和激活值则优选进行线性定点量化,以便在充分考虑应用场景的情况下提升计算效率并确保计算精度。
使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型包括:保留特定层的高比特位宽。特定层例如可以是神经网络模型的最后一层分类器层。由此,通过对关键层精度的确保,提升网络整体的计算准确率。
根据本发明的另一个方面,还包括一种人脸识别神经网络的部署方法。该方法包括在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上使用输出的所述经训练的带低比特定点量化的神经网络模型执行推理。其中,低比特定点量化的位宽由所述FPGA、GPU和/或ASIC规定的位宽决定。由此,通过合理部署凸显定点量化网络的高速低功耗运算优势。
至少一个全连接层还包括倒数第二个全连接层,用于输出提取的人脸特征向量,并且所述倒数第二个全连接层用作输出的所述经训练的定点量化的神经网络模型的输出层。所述神经网络模型执行推理输出的人脸特征向量被用于与已有的人脸特征相比对以进行人脸识别。
根据本发明的又一个方面,提出了一种人脸识别神经网络的装置,其中所述人脸识别神经网络至少包括多个卷积层和至少一个全连接层,最后一个全连接层是用于分类的分类器,所述装置包括:获取装置,用于获取待训练的神经网络模型;定点量化训练装置,用于使用定点量化来对所述神经网络模型进行训练,以获得经训练的定点量化神经网络模型,其中所述最后一个全连接层在训练过程中保持浮点;以及输出装置,输出不带所述最后一个全连接层的所述经训练的定点量化的神经网络模型。
定点量化装置可以进一步用于:以约束逐渐变强的损失函数对所述神经网络模型进行迭代训练。
定点量化装置可以进一步用于:基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调。
定点量化装置还可进一步用于:在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。
定点量化装置可以在训练低位宽神经网络模型的过程中保留特定层的高比特位宽或浮点运算,其中所述特定层包括除了所述神经网络模型的最后一层分类器层之外的其他层。
根据本发明的又一个方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的人脸识别神经网络调整方法。
根据本发明的另一个方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的人脸识别神经网络调整方法。
根据本发明的再一个方面,提出了一种定点计算平台,其至少部分由FPGA、GPU和/或ASIC构成,用于基于根据如上方法得到的所述定点神经网络模型进行推理计算。
本发明所提出的人脸识别神经网络调整方案利用人脸识别网络的特殊性,通过在训练阶段保持对网络整体精度有较大影响的分类器层不定点并且不再输入网络中包括该分类器层,能够在确保训练出的定点神经网络具有高精度的同时避免网络部署时额外的算力需求。另外,通过综合多约束函数以及位宽逐渐降低的多次量化策略,可以将低位宽定点网络带来的不稳定性通过多次训练和微调而加以分散,从而避免了定点训练中常见的收敛和振荡问题,同时能够保证最终所得定点网络的精度。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了典型的CNN的示意图。
图2示出了对CNN压缩、量化、编译从而实现优化加速的原理图。
图3A和3B示出了两种硬件友好的定点方法的例子。
图4A和4B示出了本发明的两种数值范围确定策略的示意图。
图5示出了根据本发明一个实施例的人脸识别神经网络调整方法的流程图。
图6示出了人脸识别神经网络定点训练的一个例子。
图7示出了根据本发明一个实施例的人脸识别神经网络调整装置的示意图。
图8示出了根据本发明一个实施例可用于实现上述调整和部署方法的计算设备的结构示意图。
图9示出了可以部署经本发明获取的定点神经网络的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附近,最后的量化误差会更小。通过选择比无溢出量化策略更小的量化倍率可能使得量化误差更小。更小的量化倍率会导致量化后数值动态范围变小,必然有部分浮点数值会超出此动态范围,因此需要对量化后的数值其进行饱和处理。
实验结果显示对整个网络完成量化后最小化距离策略够取得比无溢出量化策略更高的预测精度,但是需要更多的时间用于搜索最优的量化倍率。在实际应用中时间充分时,可以分别应用两种方式做量化后选择使网络推理预测精度更高的策略。
本发明的人脸识别神经网络调整方案
现有的定点模型训练通常需要从初始随机参数开始训练,需要耗费数天至数周的时间和算力。上述训练需要大量的高质量带标注数据,大多数情况下各公司的数据集不对外公开或售价昂贵,而开源数据集通常无法满足实际场景要求。另外,由于反向传播中的求导操作需要参数变化连续,由离散的参数值求导难度较大,且求出的导数值通常较小且要求精度较高,如果用定点导数值进行更新则有可能无法收敛。实验结果也表明从初始随机参数开始进行定点网络的训练通常无法达到与浮点可比拟的精度,且所需训练时间更长。
现有定点模型的另一种实现则是针对训练好的浮点神经网络模型,通过定点算法将浮点时间网络转为定点神经网络模型再在硬件平台上部署。这类实现由于仅对推理阶段定点,训练阶段仍然需要进行繁琐的浮点训练。另外,浮点转定点的部署会对计算精度产生较大影响。
鉴于现有定点方案的诸多不足,本发明提出了一种全新的针对人脸识别神经网络的定点方案。本方案利用了人脸识别任务的特殊性,通过在训练阶段保持分类器的浮点运算来确保训练精度。另一方面,由于分类器在部署阶段通常会被省略不用,因此浮点分类器的引入不会对定点网络的推理运算产生任何不利影响。进一步地,本方案综合考虑的多损失函数、逐位和逐层训练的方式以在克服定点网络不易收敛的固有缺陷的同时确保最终得到的低比特定点量化神经网络的高计算精度。
图5示出了根据本发明一个实施例的人脸识别神经网络调整方法的流程图。该人脸识别神经网络可以是具有如上结合图1描述的CNN,尤其是深度卷积神经网络的结构并且至少包括多个层。具体地,人脸识别神经网络至少包括多个卷积层和至少一个全连接层,最后一个全连接层是用于分类的分类器。
如图5所示,在步骤S510,获取待训练的神经网络模型。可以根据具体情况,经由各种手段获取上述神经网络模型。本发明对此不做限制。
在步骤S520,使用定点量化来对所述神经网络模型进行训练,以获得经训练的定点量化神经网络模型,其中所述最后一个全连接层在训练过程中保持浮点。
在步骤S530,输出不带所述最后一个全连接层的所述经训练的定点量化的神经网络模型。
基于人脸识别任务的特殊性,用于训练和用于部署的神经网络模型通常会存在一些结构性的差异。图6示出了人脸识别神经网络定点训练的一个例子。如图所示,神经网络中倒数第二个全连接层1输出用于送入分类器进行分类的一维特征向量。而位于最后一层的全连接层2则是用于对输入的特征向量进行分类的分类器。分类器的分类结果随后被送入损失函数 3进行评估以对网络参数进行调整。其中,分类器的分类精度对网络整体精度而言至关重要。在部署阶段,由于全连接层2输出的一维向量特征通常被直接用于与例如数据库中存储的已有人脸特征进行比对,因此用于部署的定点神经网络通常不需要最后一个全连接层。
由此,鉴于最后一个全连接层2对网络精度的重要程度,并且该全连接层2通常不会被真正部署在网络中用于执行推理,因此可以在训练过程 (包括微调过程)中全程保持全连接层2的浮点运算,从而在仅稍许增加训练阶段硬件和计算开销的情况下确保训练所得定点网络的精度,并且对部署后的网络算力没有影响。
由于定点网络具有不易收敛的特性,因此结合上述最后一层浮点策略,本发明进一步进入多损失函数结合训练,以及逐位逐层降低比特的训练来确保定点网络在轻易收敛的同时的高精度。
因此,在一个实施例中,步骤S520可以包括:以约束逐渐变强的损失函数对所述神经网络模型进行迭代训练。优选地,可以以弱约束损失函数训练出基础定点神经网络模型,随后再基于所述基础定点神经网络模型,以强约束损失函数训练得到所述经训练的定点量化神经网络模型。在这其中,例如可以选用SoftmaxLoss作为弱约束函数来训练基础定点网络,再使用诸如应用较为广泛的ASoftmaxLoss作为强约束函数来进行微调。
在一个实施例中,步骤S520还可以包括基于预定规则以逐渐降低的比特对定点量化神经网络模型进行迭代微调。例如,可以首先使用高比特定点量化来对神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型。例如,可以使用16比特位宽来对神经网络模型进行训练,以获取16比特定点量化神经网络。随后可以使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型。例如,可以使用8比特位宽来对经训练的16比特神经网络模型进行训练,以获取8比特定点量化的神经网络模型。
在本发明的技术方案中,上述位宽降低可以是基于预定规则的多次逐渐降低。例如,可以首先训练一个16比特位宽的定点神经网络模型。随后在该16比特位宽模型的基础上,微调至例如12比特位宽的网络模型。在该12比特位宽模型的基础上,微调至例如10比特位宽的网络模型。最后,在该10比特位宽模型的基础上,微调至目标位宽,例如8比特位宽的定点量化神经网络模型。在一个优选实施例中,可以逐位降低对初始高比特定点量化神经网络模型进行微调的定点比特数,直至目标低比特位宽为止,以获得经训练的目标低比特定点量化的神经网络模型。例如,对于最初训练得到的16比特位宽定点量化模型,可以逐比特地对网络进行微调,例如基于16比特网络微调得到15比特网络,基于15比特网络微调得到14比特网络,并以此类推,直至获得例如目标位宽为8比特的定点量化神经网络模型。
在本发明中,针对定点神经网络模型的降比特微调,可以是全网络各层同时降比特,也可以对网络中的各个层按照预定的顺序进行降比特微调。在一个实施例中,在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。例如,在将16比特位宽的神经网络微调至15比特位宽的过程中,可以从接近输入层的低层开始,逐层降低各层位宽,或者按照一定规则,每次降低一层或多层的位宽,并在多次操作之后获取15比特位宽的定点网络。随后,可以针对更低比特的网络微调重复上述过程。
在使用低比特对所述高比特定点量化神经网络模型进行微调时,可以保持特定层的高比特位宽,甚至可以保持特定层的浮点运算。这是因为有些层的定点以及定点精度对网络整体的分类准确性有较大影响,或者有些层在网络部署阶段通常不被用到,于是可以保持特定层的高比特位宽甚至是浮点运算。
对于人脸识别任务,除了保持最后一层不定点之外,还可以对其他特定层进行特殊处理,例如保持浮点或是高比特定点(例如,在朝向8比特位宽的微调过程中一直保持16比特定点)。例如,可以保持第一层的高比特位宽或浮点实现。在一个实施例中,本发明的初始高比特位宽是目标低比特位宽的整数倍。目标低比特位宽可以是部署经定点量化所得计算网络的硬件带宽。由此,在保持特定层的高比特位宽量化时,能够相对高效的实现针对特定层的计算。
在CNN的训练过程,在网络模型已经确定的情况下,是找出该模型所需的权重和偏移以使得网络的输出y(x)能够拟合所有的训练输入x的过程。为了量化这个目标,通常需要定义一个目标函数(也称为代价函数,或损失函数)。为了找到一系列能让代价尽可能小的权重和偏差,通常可以采用梯度下降算法来实现这一目的。
在本发明的神经网络的训练和微调的过程中,定点量化包括对权重参数、梯度值和激活值的定点量化,如图6所示。梯度值仅在训练和微调过程中涉及,而在网络部署和推理过程中则无需考虑。因此,在定点量化的方式选择时,可以为梯度值量化选择准确损失率更小的对数量化方式,也可以为其选择更为清楚直接的线性量化方式。
在定点网络中,由于定点数取值有限,因此需要以低学习率的定点梯度来对所述神经网络模型进行训练,所述梯度的定点位宽与所述神经网络模型的当前定点位宽相同。另外,高比特定点量化时的学习率可以大于所述低比特定点量化时的学习率。由于本发明的方案涉及从高位宽到低位宽的逐步微调,因此能够避免因学习率过大造成的梯度更新过快,并避免由此产生的损失振荡和网络不收敛等问题。
在网络部署和推理阶段涉及权重参数和激活值的量化。“权重”指代隐藏层中的参数(广义上也包括偏移量),是通过训练学习到的数值,在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。在输入为图像的情况下,上述特征值也可被称为“特征图”。与权重值不同,激活值的分布会根据输入数据样本动态变化。因此训练阶段可以基于权重参数和激活值的分布确定各层的定点量化规则,定点量化规则包括定点倍率和定点方式,定点方式包括线性定点和对数定点。出于计算效率的考虑,通常为权重和激活值的量化选择线性定点的方式。
通过将权重从浮点值变为低位宽的定点值,可以大幅减小神经网络模型的体积。由于不同层的权重数值分布不同,因此可以针对浮点神经网络模型中每个带权重的层的权重分别进行定点量化。针对神经网络模型中多个层输出的激活值的定点量化可以包括在训练时根据激活值的分布选择定点方式和倍率。另外,由于激活值并非神经网络的参数,无法在网络优化阶段具体求出激活值本身,因此激活值量化还可以为部署和推理阶段习得各层的激活值的定点量化规则,例如,习得各层激活值进行定点量化的数值范围及其分布位置和均匀性。由此,通过在推理运算时将激活值也按照确定的量化规则进一步量化为定点值,可将浮点运算转换为定点运算,大幅提高神经网络的推理速度。例如,可以通过向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集,并基于每个测试图在每一层输出的激活值来确定要在推理计算时使用的每层激活值的定点量化规则。
应该理解,根据具体的应用场景,可以选择合适的方式来实现本发明的定点量化神经网络训练与微调。例如,可以在保持最后一层浮点的情况下,首先使用弱约束损失函数训练一个高比特位宽定点网络,再进行强约束损失函数微调之后,进行降比特网络微调。这其中,微调可以是通过逐层降比特实现的。
本发明还可以包括一种人脸识别神经网络部署方法。该方法可以在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上部署如上所述的经训练的定点量化的人脸识别神经网络模型以执行推理,例如,人脸识别任务。定点量化的位宽由所述FPGA、GPU和/或ASIC的位宽决定。
如上根据图6所示,用于训练的人脸识别神经网络还包括用于输出提取的人脸特征向量的倒数第二个全连接层1。而在部署的神经网络中,由于最后一层不输出,因此图6中倒数第二个全连接层1可以用作实际部署在硬件计算平台上的神经网络模型的输出层。该神经网络模型执行推理输出的人脸特征向量被用于与已有的人脸特征(例如,存储在数据库中的现有人脸特征)相比对以进行人脸识别。
另外,人脸识别在实际应用场景中可能收集到大量应用数据,利用这些数据可以直接在硬件平台上对部署的定点模型进行微调,实现热更新的效果。因此,在一个实施例中,本发明的部署方法还可以包括将所述推理的验证结果用于对部署的所述定点量化神经网络的微调。
人脸识别神经网络调整装置
本发明的上述调整方法可由特定的人脸识别神经网络调整装置实现。
图7示出了根据本发明一个实施例的人脸识别神经网络调整装置的示意图。如图所示,人脸识别神经网络调整装置700可以包括获取装置710、定点量化装置720和输出装置730。获取装置710用于获取神经网络模型。量化装置720用于对神经网络模型进行定点量化训练,其中最后一个全连接层在训练过程中保持浮点。输出装置730则用于输出经定点量化的定点神经网络模型。
定点量化装置720可以以约束逐渐变强的损失函数对所述神经网络模型进行迭代训练;也可以使用高比特定点量化来对所述神经网络模型进行训练,以获得经训练的高比特定点量化神经网络模型,并且可以使用低比特对所述高比特定点量化神经网络模型进行微调,以获得经训练的带低比特定点量化的神经网络模型。具体地,该位宽可变定点量化装置720可以基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调,例如,可以在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。
优选地,定点量化装置720可以在训练低位宽神经网络模型的过程中保留最后一层以外的特定层的浮点或高比特位宽。该特定层可以包括神经网络模型第一层。
可以理解的是,上述调整装置700可以进行如上结合图5描述的根据本发明的任何调整操作,在此不再赘述。
图8示出了根据本发明一个实施例可用于实现上述调整方法的计算设备的结构示意图。
参见图8,计算设备800包括存储器810和处理器820。
处理器820可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器820可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器820可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器810可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器820或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器810可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010 可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器810上存储有可处理代码,当可处理代码被处理器820处理时,可以使处理器820执行上文述及的直接定点方法。在一个实施例中,上文述及的压缩编译器可以实现为压缩编译程序,同样可由存储器810存储,并由处理器820执行。
在实际使用中,上述计算设备800可以是包括大容量存储装置810和 CPU 820的通用计算设备。该通用计算设备可以与专用于执行神经网络计算且至少部分由数字电路实现的定点计算平台相结合,以实现高效的神经网络计算。在一个实施例中,本发明的神经网络计算系统可以在包括通用处理器、存储器和数字电路的片上系统(SoC)实现。图9示出了可以使用经由本发明获取的定点神经网络的SoC的一个例子。
在一个实施例中,可由SoC上的数字电路部分(例如,FPGA)来实现本系统所需的深度学习网络,例如深度卷积神经网络。例如,使用FPGA 或主要由FPGA组成的DPU来实现根据本发明所获得的二进制代码的具体执行部。由于CNN进行的是并行计算,因此通过逻辑硬件,尤其是FPGA 来实现神经网络计算功能具有天然优势,并且相比于软件执行,能够实现更低的功耗。
在一个实施例中,可以首先将定点神经网络模型及其参数存储在片上系统的存储器(例如,主存储器)中,在随后进行神经网络计算或推理(例如,人脸识别)时,可由图9所示的可编程逻辑模块(例如,实现为DPU) 进行执行。由此通过减小权重占据的存储空间以及将浮点计算定点化来提升计算系统的整体运行效率。应该理解的是,还可以使用图9所示以外的其他架构来实现通用计算系统与异构计算系统(例如,DPU)的高效结合,这些架构都能够执行基于本发明方案获取的定点神经网络。例如,根据本发明的调整方案获取的用于人脸识别的定点量化神经网络可以在至少部分由FPGA、GPU和/或ASIC实现的定点计算平台上执行,上述计算中涉及的定点位宽可由硬件电路的位宽所决定。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可由执行规定的功能或操作的专用的基于硬件的系统实现,或者可由专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (23)
1.一种调整人脸识别神经网络的方法,其中所述人脸识别神经网络至少包括多个卷积层和至少一个全连接层,最后一个全连接层是用于分类的分类器,所述方法包括:
获取待训练的神经网络模型;
使用定点量化来对所述神经网络模型进行训练,以获得经训练的定点量化神经网络模型,其中所述最后一个全连接层在训练过程中保持浮点;以及
输出不带所述最后一个全连接层的所述经训练的定点量化的神经网络模型。
2.如权利要求1所述的方法,其中,使用定点量化来对所述神经网络模型进行训练包括:
以约束逐渐变强的损失函数对所述神经网络模型进行迭代训练。
3.如权利要求2所述的方法,其中,以约束逐渐变强的损失函数对所述神经网络模型进行迭代训练包括:
以弱约束损失函数训练出基础定点神经网络模型;
基于所述基础定点神经网络模型,以强约束损失函数训练得到所述经训练的定点量化神经网络模型。
4.如权利要求1所述的方法,其中,使用定点量化来对所述神经网络模型进行训练包括:
基于预定规则以逐渐降低的比特对定点量化神经网络模型进行迭代微调。
5.如权利要求4所述的方法,其中,基于预定规则以逐渐降低的比特对定点量化神经网络模型进行迭代微调包括:
逐位降低对初始高比特定点量化神经网络模型进行微调的定点比特数,直至目标低比特位宽为止,以获得经训练的目标低比特定点量化的神经网络模型。
6.如权利要求4所述的方法,其中,基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调包括:
在使用特定比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定比特,以获得该特定比特定点量化的神经网络模型。
7.如权利要求1所述的方法,其中,以低学习率的定点梯度来对所述神经网络模型进行训练,所述梯度的定点位宽与所述神经网络模型的当前定点位宽相同。
8.如权利要求1所述的方法,其中,定点量化包括对权重参数、梯度值和激活值的定点量化,并且对权重参数和激活值进行线性定点量化。
9.如权利要求1所述的方法,其中,使用定点量化来对所述神经网络模型进行训练包括:
在定点量化训练时保留除所述最后一层全连接层之外的特定层的浮点或高比特位宽。
10.如权利要求9所述的方法,其中,所述高比特位宽是输出的定点量化神经网络模型的位宽的整数倍。
11.一种人脸识别神经网络部署方法,包括:
在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上部署如权利要求1-11中任一项所述的经训练的定点量化的神经网络模型以执行推理。
12.如权利要求11所述的方法,其中,所述至少一个全连接层还包括倒数第二个全连接层,用于输出提取的人脸特征向量,并且所述倒数第二个全连接层用作输出的所述经训练的定点量化的神经网络模型的输出层。
13.如权利要求12所述的方法,其中,所述神经网络模型执行推理输出的人脸特征向量被用于与已有的人脸特征相比对以进行人脸识别。
14.如权利要求11所述的方法,其中,所述定点量化的位宽由所述FPGA、GPU和/或ASIC的位宽决定。
15.如权利要求11所述的方法,还包括:
将所述推理的验证结果用于对部署的所述定点量化神经网络的微调。
16.一种调整人脸识别神经网络的装置,其中所述人脸识别神经网络至少包括多个卷积层和至少一个全连接层,最后一个全连接层是用于分类的分类器,所述装置包括:
获取装置,用于获取待训练的神经网络模型;
定点量化训练装置,用于使用定点量化来对所述神经网络模型进行训练,以获得经训练的定点量化神经网络模型,其中所述最后一个全连接层在训练过程中保持浮点;以及
输出装置,输出不带所述最后一个全连接层的所述经训练的定点量化的神经网络模型。
17.如权利要求16所述的装置,其中,所述定点量化装置进一步用于:
以约束逐渐变强的损失函数对所述神经网络模型进行迭代训练。
18.如权利要求16所述的装置,其中,所述定点量化装置进一步用于:
基于预定规则以逐渐降低的比特对所述高比特定点量化神经网络模型进行迭代微调。
19.如权利要求18所述的装置,其中,所述定点量化装置进一步用于:
在使用特定低比特进行微调时,基于预定规则从神经网络模型的低层到高层逐步降低位宽至所述特定低比特,以获得经训练的带该特定低比特定点量化的神经网络模型。
20.如权利要求16所述的装置,其中,所述定点量化装置在定点量化训练时保留除所述最后一层全连接层之外的特定层的浮点或高比特位宽。
21.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-15中任一项所述的方法。
22.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-15中任一项所述的方法。
23.一种定点计算平台,至少部分由FPGA、GPU和/或ASIC构成,用于基于根据权利要求1-15中任一项的方法进行推理计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550169.2A CN110555450B (zh) | 2018-05-31 | 2018-05-31 | 人脸识别神经网络调整方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810550169.2A CN110555450B (zh) | 2018-05-31 | 2018-05-31 | 人脸识别神经网络调整方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110555450A true CN110555450A (zh) | 2019-12-10 |
CN110555450B CN110555450B (zh) | 2022-06-28 |
Family
ID=68733721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810550169.2A Active CN110555450B (zh) | 2018-05-31 | 2018-05-31 | 人脸识别神经网络调整方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110555450B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340226A (zh) * | 2020-03-06 | 2020-06-26 | 北京市商汤科技开发有限公司 | 一种量化神经网络模型的训练及测试方法、装置及设备 |
CN111401516A (zh) * | 2020-02-21 | 2020-07-10 | 华为技术有限公司 | 一种神经网络通道参数的搜索方法及相关设备 |
CN111598227A (zh) * | 2020-05-20 | 2020-08-28 | 字节跳动有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112101524A (zh) * | 2020-09-07 | 2020-12-18 | 上海交通大学 | 可在线切换比特位宽的量化神经网络的方法及系统 |
CN112132261A (zh) * | 2020-09-04 | 2020-12-25 | 武汉卓目科技有限公司 | 一种运行在arm上的卷积神经网络字符识别方法 |
CN112488070A (zh) * | 2020-12-21 | 2021-03-12 | 上海交通大学 | 一种面向遥感图像目标检测的神经网络压缩方法 |
CN113139650A (zh) * | 2020-01-20 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 深度学习模型的调优方法和计算装置 |
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
CN113408715A (zh) * | 2020-03-17 | 2021-09-17 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
WO2021185262A1 (zh) * | 2020-03-17 | 2021-09-23 | 安徽寒武纪信息科技有限公司 | 计算装置、方法、板卡和计算机可读存储介质 |
CN113468935A (zh) * | 2020-05-08 | 2021-10-01 | 上海齐感电子信息科技有限公司 | 人脸识别方法 |
CN113642452A (zh) * | 2021-08-10 | 2021-11-12 | 汇纳科技股份有限公司 | 人体图像质量评价方法、装置、系统及存储介质 |
CN113780513A (zh) * | 2020-06-10 | 2021-12-10 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN113793601A (zh) * | 2020-05-27 | 2021-12-14 | 北京声智科技有限公司 | 一种语音识别方法及装置 |
CN115314239A (zh) * | 2022-06-21 | 2022-11-08 | 中化学交通建设集团有限公司 | 基于多模型融合的隐匿恶意行为的分析方法和相关设备 |
US11507370B2 (en) | 2018-02-13 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Method and device for dynamically adjusting decimal point positions in neural network computations |
US11544059B2 (en) | 2018-12-28 | 2023-01-03 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Signal processing device, signal processing method and related products |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017049496A1 (en) * | 2015-09-23 | 2017-03-30 | Intel Corporation | Apparatus and method for local quantization for convolutional neural networks (cnns) |
CN106897734A (zh) * | 2017-01-12 | 2017-06-27 | 南京大学 | 基于深度卷积神经网络的层内非均匀的k平均聚类定点量化方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107657263A (zh) * | 2016-08-12 | 2018-02-02 | 北京深鉴科技有限公司 | 一种用于实现ann的深度处理单元 |
CN107688855A (zh) * | 2016-08-12 | 2018-02-13 | 北京深鉴科技有限公司 | 针对于复杂神经网络的分层量化方法与装置 |
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
CN108009625A (zh) * | 2016-11-01 | 2018-05-08 | 北京深鉴科技有限公司 | 人工神经网络定点化后的微调方法和装置 |
-
2018
- 2018-05-31 CN CN201810550169.2A patent/CN110555450B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017049496A1 (en) * | 2015-09-23 | 2017-03-30 | Intel Corporation | Apparatus and method for local quantization for convolutional neural networks (cnns) |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107657263A (zh) * | 2016-08-12 | 2018-02-02 | 北京深鉴科技有限公司 | 一种用于实现ann的深度处理单元 |
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) |
CN108009625A (zh) * | 2016-11-01 | 2018-05-08 | 北京深鉴科技有限公司 | 人工神经网络定点化后的微调方法和装置 |
CN106897734A (zh) * | 2017-01-12 | 2017-06-27 | 南京大学 | 基于深度卷积神经网络的层内非均匀的k平均聚类定点量化方法 |
CN107688849A (zh) * | 2017-07-28 | 2018-02-13 | 北京深鉴科技有限公司 | 一种动态策略定点化训练方法及装置 |
Non-Patent Citations (2)
Title |
---|
BO YANG ET AL.: "Quantization and training of object detection networks with low-precision weights and activations", 《JOURNAL OF ELECTRONIC IMAGING》 * |
张榜 等: "一种基于FPGA的卷积神经网络加速器的设计与实现", 《复旦学报(自然科学版)》 * |
Cited By (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11507370B2 (en) | 2018-02-13 | 2022-11-22 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Method and device for dynamically adjusting decimal point positions in neural network computations |
US11544059B2 (en) | 2018-12-28 | 2023-01-03 | Cambricon (Xi'an) Semiconductor Co., Ltd. | Signal processing device, signal processing method and related products |
CN113139650A (zh) * | 2020-01-20 | 2021-07-20 | 阿里巴巴集团控股有限公司 | 深度学习模型的调优方法和计算装置 |
CN113222097A (zh) * | 2020-01-21 | 2021-08-06 | 上海商汤智能科技有限公司 | 数据处理方法和相关产品 |
CN113269320A (zh) * | 2020-02-14 | 2021-08-17 | 阿里巴巴集团控股有限公司 | 处理单元、计算装置、片上系统、数据中心和相关方法 |
CN111401516B (zh) * | 2020-02-21 | 2024-04-26 | 华为云计算技术有限公司 | 一种神经网络通道参数的搜索方法及相关设备 |
CN111401516A (zh) * | 2020-02-21 | 2020-07-10 | 华为技术有限公司 | 一种神经网络通道参数的搜索方法及相关设备 |
CN111340226A (zh) * | 2020-03-06 | 2020-06-26 | 北京市商汤科技开发有限公司 | 一种量化神经网络模型的训练及测试方法、装置及设备 |
CN111340226B (zh) * | 2020-03-06 | 2022-01-25 | 北京市商汤科技开发有限公司 | 一种量化神经网络模型的训练及测试方法、装置及设备 |
CN113408715B (zh) * | 2020-03-17 | 2024-05-28 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
CN113408715A (zh) * | 2020-03-17 | 2021-09-17 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
WO2021185125A1 (zh) * | 2020-03-17 | 2021-09-23 | 杭州海康威视数字技术股份有限公司 | 一种神经网络的定点化方法、装置 |
WO2021185262A1 (zh) * | 2020-03-17 | 2021-09-23 | 安徽寒武纪信息科技有限公司 | 计算装置、方法、板卡和计算机可读存储介质 |
CN113468935A (zh) * | 2020-05-08 | 2021-10-01 | 上海齐感电子信息科技有限公司 | 人脸识别方法 |
CN113468935B (zh) * | 2020-05-08 | 2024-04-02 | 上海齐感电子信息科技有限公司 | 人脸识别方法 |
CN111598227B (zh) * | 2020-05-20 | 2023-11-03 | 字节跳动有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN111598227A (zh) * | 2020-05-20 | 2020-08-28 | 字节跳动有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN113793601B (zh) * | 2020-05-27 | 2024-04-02 | 北京声智科技有限公司 | 一种语音识别方法及装置 |
CN113793601A (zh) * | 2020-05-27 | 2021-12-14 | 北京声智科技有限公司 | 一种语音识别方法及装置 |
CN113780513A (zh) * | 2020-06-10 | 2021-12-10 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN113780513B (zh) * | 2020-06-10 | 2024-05-03 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN112132261A (zh) * | 2020-09-04 | 2020-12-25 | 武汉卓目科技有限公司 | 一种运行在arm上的卷积神经网络字符识别方法 |
CN112132261B (zh) * | 2020-09-04 | 2024-07-05 | 武汉卓目科技股份有限公司 | 一种运行在arm上的卷积神经网络字符识别方法 |
CN112101524A (zh) * | 2020-09-07 | 2020-12-18 | 上海交通大学 | 可在线切换比特位宽的量化神经网络的方法及系统 |
CN112488070A (zh) * | 2020-12-21 | 2021-03-12 | 上海交通大学 | 一种面向遥感图像目标检测的神经网络压缩方法 |
CN113642452B (zh) * | 2021-08-10 | 2023-11-21 | 汇纳科技股份有限公司 | 人体图像质量评价方法、装置、系统及存储介质 |
CN113642452A (zh) * | 2021-08-10 | 2021-11-12 | 汇纳科技股份有限公司 | 人体图像质量评价方法、装置、系统及存储介质 |
CN115314239A (zh) * | 2022-06-21 | 2022-11-08 | 中化学交通建设集团有限公司 | 基于多模型融合的隐匿恶意行为的分析方法和相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110555450B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555450B (zh) | 人脸识别神经网络调整方法和装置 | |
CN110555508B (zh) | 人工神经网络调整方法和装置 | |
CN110413255B (zh) | 人工神经网络调整方法和装置 | |
CN110378468B (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN110222821B (zh) | 基于权重分布的卷积神经网络低位宽量化方法 | |
CN110880038B (zh) | 基于fpga的加速卷积计算的系统、卷积神经网络 | |
US11714998B2 (en) | Accelerating neural networks with low precision-based multiplication and exploiting sparsity in higher order bits | |
CN109002889B (zh) | 自适应迭代式卷积神经网络模型压缩方法 | |
KR20190051755A (ko) | 저 정밀도 뉴럴 네트워크 학습을 위한 방법 및 장치 | |
CN109800865B (zh) | 神经网络生成及图像处理方法和装置、平台、电子设备 | |
CN111178258B (zh) | 一种图像识别的方法、系统、设备及可读存储介质 | |
CN110363297A (zh) | 神经网络训练及图像处理方法、装置、设备和介质 | |
US11704556B2 (en) | Optimization methods for quantization of neural network models | |
CN109766800B (zh) | 一种移动端花卉识别模型的构建方法 | |
CN110110852B (zh) | 一种深度学习网络移植到fpag平台的方法 | |
CN115483957B (zh) | Ris辅助通信系统的相位调控方法、装置、电子设备及介质 | |
KR102657904B1 (ko) | 뉴럴 네트워크에서의 다중 레벨 단계적 양자화 방법 및 장치 | |
CN114830137A (zh) | 用于生成预测模型的方法和系统 | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
US11699077B2 (en) | Multi-layer neural network system and method | |
CN116306879A (zh) | 数据处理方法、装置、电子设备以及存储介质 | |
CN117348837A (zh) | 浮点精度模型的量化方法、装置、电子设备以及存储介质 | |
CN114298291A (zh) | 一种模型量化处理系统及一种模型量化处理方法 | |
CN114139678A (zh) | 卷积神经网络量化方法、装置、电子设备和存储介质 | |
CN110610227B (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 TECHNOLOGY Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |