CN110413255A - 人工神经网络调整方法和装置 - Google Patents
人工神经网络调整方法和装置 Download PDFInfo
- Publication number
- CN110413255A CN110413255A CN201810402123.6A CN201810402123A CN110413255A CN 110413255 A CN110413255 A CN 110413255A CN 201810402123 A CN201810402123 A CN 201810402123A CN 110413255 A CN110413255 A CN 110413255A
- Authority
- CN
- China
- Prior art keywords
- quantization
- fixed point
- point
- neural network
- floating
- 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
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/57—Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
- G06F7/575—Basic arithmetic logic units, i.e. devices selectable to perform either addition, subtraction or one of several logical operations, using, at least partially, the same circuitry
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Neurology (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Image Analysis (AREA)
Abstract
提供了一种调整人工神经网络(ANN)的方法和装置。ANN至少包括多个层,所述方法包括:获取经训练的浮点神经网络模型;对所述浮点神经网络模型进行定点量化;以及输出经定点量化的定点神经网络模型。本发明的直接定点方案不涉及模型训练,无需标注数据集也不涉及反向操作,因此能够便捷快速且低成本高精度地实现对神经网络的压缩和优化。
Description
技术领域
本发明涉及人工神经网络(ANN),例如卷积神经网络(CNN),尤其涉及对神经网络的定点量化。
背景技术
基于人工神经网络(ANN,Artificial Neural Network),尤其是卷积神经网络(CNN,Convolutional Neural Network)的方法在很多应用中都取得了极大的成功。在计算机视觉领域,特别是针对图像分类问题,CNN的引入使得图像分类的精度大幅提高。
虽然基于CNN的方法具有先进的性能,但与传统方法相比需要更多的计算和内存资源。尤其随着神经网络的发展,大型神经网络具有越来越多的层级和数据量,这为神经网络的部署带来了巨大的挑战。尽管大多数基于CNN的方法需要依赖于大型服务器,但近年来,智能移动设备的普及也为神经网络压缩带来了机遇与挑战,例如许多嵌入式系统也希望具有由CNN方法实现的高精度实时目标识别功能。然而,将多层级和大数据量的CNN用于小型系统必须克服资源有限的问题。
现有CNN系统中多采用32位甚至更高位浮点数数字表示系统,然而在某些情况下,使用低位宽的定点数对神经网络的数据结果影响不大。鉴于现有CNN参数具备大量冗余的事实,可以通过神经网络定点化来大幅降低资源使用量。之前已经有工作对神经网络进行定点化研究。
本申请的申请人业已提出了针对CNN的逐层变精度定点化方案。上述方案需要直接从初始随机参数开始逐层训练,不仅耗时费力,还会面临因定点过后精度会下降,在网络层数变深或者网络设计用来解决回归问题的情况下,网络性能严重退化等问题。
由此,需要一种更为简便有效的神经网络定点量化方法。
发明内容
为了解决如上至少一个问题,本发明提出了一种直接定点方案,不涉及模型训练,无需标注数据集也不涉及反向操作,因此能够便捷快速且低成本高精度地实现对神经网络的压缩和优化。
根据本发明的一个方面,提出了一种调整人工神经网络(ANN)的方法,其中所述ANN至少包括多个层,所述方法包括:获取经训练的浮点神经网络模型;对所述浮点神经网络模型进行定点量化;以及输出经定点量化的定点神经网络模型。
由此,通过直接对已经训练完毕的浮点神经网络模型进行定点量化,能够便捷快速地实现神经网络的定点加速。
对所述浮点神经网络模型进行定点量化可以包括对所述浮点神经网络模型多个层的权重参数进行定点量化。优选地,可以对所述浮点神经网络模型中每个带权重的层的权重分别进行定点量化。由此通过将权重从高位宽浮点值量化为低位宽定点值,大幅降低了神经网络模型的体积。
一方面,对所述浮点神经网络模型进行定点量化还可以包括:确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则。具体地,激活值定点量化可以包括:将所述浮点神经网络模型中的浮点权重参数替换为定点权重参数;向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集;以及根据每个测试图在每一层输出的激活值确定针对该层输出的激活值的定点量化规则。优选地,确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则还包括:对每个测试图在每一层输出的激活值进行定点量化,以将经定点量化的激活值输入下一层。由此,通过将激活值的数值范围进行定点量化,可以在推理运算时方便地将激活值量化为定点值,以便将浮点运算转换为定点运算,大幅提升推理预测的速度。
可以根据具体情况,选择校准数据集中出现最多的激活值数值范围、平均值或中位数等来确定每一层输出的激活值数值范围的定点量化。
定点量化可以包括根据数据分布基于已确定的定点位宽来决定所述定点量化的数值范围。定点量化的数值范围可以根据如下策略之一决定:在确保所有数据无溢出的情况下选择最小的定点量化数值范围;选择使得所有数据量化误差最小的定点量化数值范围,并将超出范围的数据值进行强制等于极值的饱和处理。优选地,定点量化是对称均匀量化。由此,通过定点加法和乘法以及移位操作就能够实现神经网络中最为常见的矩阵乘法和加法,从而大幅提升网络推理预测的速度。
输出的定点神经网络模型可由至少部分包括FPGA、GPU和/或ASIC的定点计算平台用于执行推理。定点量化的位宽则由定点计算平台的位宽确定。由此,能够从硬件上进一步确保定点操作的高速执行。
根据本发明的另一个方面,提出了一种调整人工神经网络(ANN)的装置,其中所述ANN至少包括多个层,所述装置包括:获取装置,用于获取经训练的浮点神经网络模型;量化装置,用于对所述浮点神经网络模型进行定点量化;以及输出装置,用于输出经定点量化的定点神经网络模型。
优选地,量化装置可以包括:权重量化装置,用于对所述浮点神经网络模型多个层的权重参数进行定点量化。该权重量化装置可以对所述浮点神经网络模型中每个带权重的层的权重分别进行定点量化。
优选地,量化装置还可以包括:激活值量化装置,用于确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则。该激活值量化装置可以用于:将所述浮点神经网络模型中的浮点权重参数替换为定点权重参数;向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集;以及根据每个测试图在每一层输出的激活值确定针对该层输出的激活值的定点量化规则。
优选地,该激活值量化装置可以进一步用于:对每个测试图在每一层输出的激活值进行定点量化,以将经定点量化的激活值输入下一层。
量化装置可以根据数据分布基于已确定的定点位宽来决定所述定点量化的数值范围。量化装置可以根据如下策略之一决定所述定点量化的数值范围:在确保所有数据无溢出的情况下选择最小的定点量化数值范围;选择使得所有数据量化误差最小的定点量化数值范围,并将超出范围的数据值进行强制等于极值的饱和处理。优选地,量化装置进行对称均匀量化。
根据本发明的又一个方面,提出了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的ANN调整方法。
根据本发明的另一个方面,提出了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的ANN调整方法。
根据本发明的再一个方面,提出了一种定点计算平台,其至少部分由FPGA、GPU和/或ASIC构成,用于基于根据如上方法得到的所述定点神经网络模型进行推理计算。
本发明所提出的ANN调整方案能够针对训练完成的浮点神经网络模型进行直接量化。上述直接量化由于不涉及网络参数的训练,因此能够高效便捷的完成。这其中,权重参数的量化能够大幅降低神经网络模型的所需的存储空间。对激活值数值范围的量化能够在执行推理时对激活值也进行方便地量化,从而将浮点运算转换为定点运算,由此大幅提升神经网络推理预测的速度。优选地,上述定点量化可以是对称均匀量化,尤其适用于二进制计算的应用场景。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了典型的CNN的示意图。
图2示出了对CNN压缩、量化、编译从而实现优化加速的原理图。
图3示出了现有定点量化方案的示意性流程图。
图4示出了根据本发明的直接定点量化方案的示意性流程图。
图5示出了根据本发明一个实施例的ANN调整方法的流程图。
图6示出了根据本发明一个实施例的定点量化方法的实现例。
图7示出了根据本发明一个实施例的用于确定激活值定点量化规则的实现例。
图8A和8B示出了本发明的两种数值范围确定策略的示意图。
图9示出了根据本发明一个实施例的ANN调整装置的示意图。
图10示出了根据本发明一个实施例可用于实现上述直接压缩方法的计算设备的结构示意图。
图11示出了可以使用经本发明获取的定点神经网络的SoC的一个例子。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本申请中,将主要以图像处理为例来说明本发明对CNN的改进。本申请的方案适用于各种人工神经网络,包括深度神经网络(DNN)、循环神经网络(RNN)与卷积神经网络(CNN)。以下以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来实现神经网络推理功能具有天然的计算优势,并且相比于软件执行,能够实现更低的功耗。
神经网络的定点量化
大型神经网络为了保证训练精度,通常在训练时采用浮点或更高精度。神经网络的冗余性和抗干扰性为将其转换为定点提供了可能。嵌入式和移动式硬件存储容量和计算能力有限,甚至没有浮点运算单元,定点量化为将复杂网络部署在这些设备上提供了可能。但是,量化的同时会降低神经网络的预测精度,目前神经网络量化研究的一大挑战在于如何在提高压缩比的同时保持预测精度。
图3示出了现有定点量化方案的示意性流程图。如图所示,现有的定点模型训练需要从初始随机参数开始训练,需要耗费数天至数周的时间和算力。上述训练需要大量的高质量带标注数据,大多数情况下各公司的数据集不对外公开或售价昂贵,而开源数据集通常无法满足实际场景要求。另外,由于反向传播中的求导操作需要参数变化连续,由离散的参数值求导难度较大,且求出的导数值通常较小且要求精度较高,如果用定点导数值进行更新则有可能无法收敛。实验结果也表明从初始随机参数开始进行定点网络的训练通常无法达到与浮点可比拟的精度,且所需训练时间更长。
鉴于现有定点方案的诸多不足,本发明提出了一种全新的用于人工神经网络ANN(尤其是深度卷积神经网络CNN)的直接定点方案。本方案直接获取已有的浮点神经网络模型,针对训练完毕的模型直接进行定点量化。更进一步地,本方案通过定点化倍率量化的方法实现对神经网络的大幅压缩,通过对运算过程的优化大幅提高了网络的预测速度,并通过优化量化倍率的策略实现与浮点网络近似的精度。图4示出了根据本发明的直接定点量化方案的示意性流程图。
相比于现有的定点训练方案,本发明的直接量化方案可以直接利用之前浮点训练的网络模型结果,上述网络模型结果可以从诸多渠道获得,并且由于直接量化无需进行训练,只需数分钟即可完成。本发明中的直接量化方式无需完整的训练用带标注数据集,只需小部分训练或测试数据集中的无标注图片用于激活值校准即可。另外,由于是针对训练完成的浮点数据的直接量化,不涉及定点误差的逐层累积,因此其计算精度比定点训练方案更高。
图5示出了根据本发明一个实施例的ANN调整方法的流程图。ANN可以是如上结合图1描述的CNN,尤其是深度卷积神经网络,并且至少包括多个层。
如图5所示,在步骤S510,获取经训练的浮点神经网络模型。可以根据具体情况,经由各种手段获取训练完成的浮点神经网络模型。本发明对此不做限制。
在步骤S520,对浮点神经网络模型进行定点量化。在步骤S530,输出经定点量化的定点神经网络模型。
如上所述,神经网络模型中的数据涉及权重和激活值两者。“权重”指代隐藏层中的参数(广义上也包括偏移量),是通过训练学习到的数值,在推理时保持不变;激活值指代从输入层开始,每一层的输出由输入值和权重值通过运算得到,在各层之间传递的数值,也称为特征值。在输入为图像的情况下,上述特征值也可被称为“特征图”。与权重值不同,激活值的分布会根据输入数据样本动态变化。本发明中的定点量化可以针对权重或激活值或其两者进行。
在一个实施例中,步骤S520可以包括对浮点神经网络模型多个层的权重参数进行定点量化。通过将权重从高位宽的浮点值量化为低位宽的定点值,可以大幅减小神经网络模型的体积。由于不同层的权重数值分布不同,因此可以针对浮点神经网络模型中每个带权重的层的权重分别进行定点量化。
在一个实施例中,步骤S520还可以包括确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则。由于激活值并非神经网络的参数,无法在网络优化阶段具体求出激活值本身,因此激活值量化只是习得各层的激活值的定点量化规则,例如,习得各层激活值进行定点量化的数值范围及其分布位置和均匀性。由此,通过在推理运算时将激活值也按照确定的量化规则进一步量化为定点值,可将浮点运算转换为定点运算,大幅提高神经网络的推理速度。
如下将结合图6示出了根据本发明一个实施例的定点量化方法的实现例。如图所示,在获取了浮点神经网络模型之后,可以可选地对浮点网络进行预处理。在此,预处理可以包括删除网络中与量化无关的层,主要包括数据标注的输入层,计算误差和反向传递的损失层等等。
随后,可以首先对权重进行量化。由于推理时权重数值不随输入特征图(例如,图片)变化,因此可以对权重直接进行量化。不同层的权重数值分布不同,需要对每一层的权重分别进行量化。对于有偏移量的层(如带偏移量的),偏移量和权重分别进行量化可以进一步提高精度。量化时可以采用优化的量化策略(例如,如下将详述的无溢出量化策略或者最小化距离量化策略等)确定具体量化方式(例如,如下将详述的量化倍率),然后将量化后的定点值替换原浮点值,同时保存下每一层的权重量化倍率用于预测。
为了保证激活值的动态范围正确,需要先将各层权重量化后再进行激活值量化。激活值并不存储在神经网络中,激活值量化只是习得各层的激活值的定点量化数值范围,例如,量化倍率,然后将其存储在网络中。
在给定位宽(例如,8比特位宽)的情况下,针对需要定点量化表示的一组数,只有256个值可以使用。此时,就需要合理确定这些值所表示的数值范围、数值范围内的分布规则等的定点量化规则。在均匀分布且给定位宽的情况下,量化倍率指代相邻俩值的间隔,并且可以作为数值范围的表征。例如,无倍率变化且对称分布的情况下,8比特位宽能够以1为单位表示{-128~127}范围内的数值。在例如量化倍率为2^(-3)的情况下,8比特位宽能够以0.125为单位表示例如{-16~15.875}范围内的数值。
在此,将激活值定点量化规则的学习过程称为“校准”,如下将以量化倍率为例进行描述。由于激活值的动态范围随着输入样本改变,因此需要选择有代表性的输入数据集以分析得到真实的激活值范围。
例如,对于1000分类的任务,可以每一个类别选择3张图片,共3000张图片作为输入依次进行校准学习。这个校准数据集可以由训练用数据集中筛选得到,也可以有测试数据集或者应用场景采集得到,通常数量比训练用数据集小很多,且无需标注(只进行推测而不进行训练,因此无需标注)。校准数据集的与实际应用场景越相似,数量越多,则最后校准的得到量化倍率越准确。另外由于上层的激活值会影响下层的输入,因此需要从上往下逐层量化。在输入了全部的校准数据集,例如,3000张图片之后,可以根据每张测试图片在每一层输出的激活值数值范围进行针对该层输出的激活值数值范围的定点量化。输入至下一层的激活值数值优选是经过定点量化的。
图7示出了根据本发明一个实施例的用于确定激活值定点量化规则的实现例。如图所示,首先进行权重量化,并将带权重的层(例如,卷积层)中的浮点权重参数替换成定点权重参数。
随后,进行激活值的量化。换句话说,确定激活值每一层的定点量化规则并由此对激活值进行量化。量化规则例如包括在定点位宽确定情况下的量化倍率。具体地,对于每一层,可以首先在其输出之后插入量化层。量化层用于将每一层输出的浮点激活值量化为定点值。每层可以共用一个量化倍率值,并采用例如无溢出量化或者最小距离量化策略进行量化。
对于构造好的神经网络模型,假设共有N张图片用作校准数据集。这时可以逐一输入校准数据集内的图片,记录下每一层的量化倍率值,直到所有校准数据集图片的量化倍率值均被记录。对于每一层,共有N个量化倍率值被记录。在一个实施例中,可以选择出现次数最多的量化倍率值,作为该层最终的量化倍率值。如果有重复则随机选择一个。在其他实施例中,可以采取其他方式确定该层的最终量化倍率值,例如,求取平均值或中位数。最后,可以删除模型中添加的量化层,仅保存每层的激活值量化倍率值,供推理时使用。
当完成权重量化和激活值量化校准后,得到了定点权重值、各层的权重量化倍率和激活值量化倍率,此时就可以将原浮点的网络预测流程替换为定点的预测流程。由于各层全程采用定点数进行运算,只需在取最终结果时将定点数转换为浮点数。通过将其中的权重从高位宽的浮点值量化为低位宽的定点值,可以大幅减小神经网络模型的体积。通过在推理运算时将激活值也量化为定点值,可以将浮点运算转换为定点运算,大幅提高推理速度。
如上已经结合图4-7描述了根据本发明的神经网络模型的定点量化方案。如下将对具体的定点量化实现进行具体描述。
定点量化的基本概念
在神经网络模型中的定点量化是指将一组高精度浮点数量化为低精度的定点值,实质是将一个连续的数据分布映射到有限的离散分布的过程,即:
X’=F1(X),
其中X为原浮点数值,X’为量化后的定点数值。在输出时,需要将量化后的定点数值还原为浮点数值,即:
X”=F2(X’),
其中X”为还原后浮点数值。还原后的数值与原浮点数值的差距称为量化误差,即:
Loss=∑(X-X”)^2。
常见的量化方法中的F1和F2函数为非线性函数或线性函数。采用线性量化使得定点值和浮点值之间为线性关系,减小了定浮点转换所需运算量。非线性的量化方式需要付出大量代价(通常为非线性函数,如密码表)将其还原为浮点值,这增大了增加了量化和反量化的运算量。更重要的是,不同数据组之间的转换公式不一致,导致不同数据组之间进行运算时必须先还原为浮点值,使得定点运算带来的速度优势无法体现。因此,非线性量化通常用于减小模型体积而非提高速度。本发明主要目标为优化神经网络的推理速度,因此优选采用线性量化的方式。
对于神经网络而言,对权重和激活值的量化误差会导致网络的预测精度降低。复杂的量化方法可以减少对精度的影响,但是会增加计算量。神经网络的主要挑战在于减少计算量的同时尽可能保持推理精度。本发明优选采用计算量最小的对称定点化倍率量化的方法,通过对运算过程的优化大幅提高神经网络推理速度,并通过优化量化倍率的选择策略使网络预测精度。
对称量化和定点化倍率量化
如上所述,本发明优选采用对称量化与定点化倍率量化的方法,通过对运算过程的优化大幅提高神经网络的推理速度。
在此,“对称量化”是指量化后的数据为与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神经网络中的多层量化误差的积累会对神经网络推理结果的准确性造成不利影响。为了最小化量化后网络的预测精度损失,需要不断优化不同数据分布下的量化倍率设置,使得量化误差尽可能小。本发明提出了两种优化量化倍率的策略,可以根据具体应用情况提升定点网络的推理预测精度。图8A和8B示出了本发明的两种数值范围确定策略的示意图。
1.无溢出量化策略
越大的量化倍率意味着越高的量化精度,但是对应的浮点的动态范围越小。此策略保证在所有的数据量化时无溢出的情况下选择的量化倍率尽可能大,从而使得所有数的量化后精度尽可能高。
首先求出浮点值的动态范围,由于是对称量化,即求所有数的绝对值最大值,然后取2^[log2(MAX)](其中[]为向上取整)作为量化后的量化倍率。如图8A所示,2^N>max(MAX,-MIN)>2^(N-1),则选取2^N作为量化倍率。此方法的优点是保证量化后的动态范围大于浮点动态范围,无数据溢出损失,缺点是易受到个别极端值得影响,总体的量化后精度可能降低。
2.最小化距离策略
此策略在允许数据溢出的情况下选择使量化后精度最高的量化倍率,如上图8B所示,选择2^(N-1)作为量化倍率时,虽然有部分数据溢出,但是由于数据分布集中在0附近,最后的量化误差会更小。通过选择比无溢出量化策略更小的量化倍率可能使得量化误差更小。更小的量化倍率会导致量化后数值动态范围变小,必然有部分浮点数值会超出此动态范围,因此需要对量化后的数值其进行饱和处理。
实验结果显示对整个网络完成量化后最小化距离策略够取得比无溢出量化策略更高的预测精度,但是需要更多的时间用于搜索最优的量化倍率。在实际应用中时间充分时,可以分别应用两种方式做量化后选择使网络推理预测精度更高的策略。
ANN调整装置
本发明的上述直接定点的ANN调整方法可由特定的ANN调整装置实现。图9示出了根据本发明一个实施例的ANN调整装置的示意图。如图所示,ANN调整装置900可以包括获取装置910、量化装置920和输出装置930。获取装置910用于获取经训练的浮点神经网络模型。量化装置920用于对所述浮点神经网络模型进行定点量化。输出装置930则用于输出经定点量化的定点神经网络模型。
优选地,量化装置可以包括权重量化装置921以及激活值量化装置922。权重量化装置921可以用于对所述浮点神经网络模型多个层的权重参数进行定点量化,例如,可以对所述浮点神经网络模型中每个带权重的层的权重分别进行定点量化。
激活值量化装置922可以用于确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则。在一个实施例中,该激活值量化装置922可以用于:将所述浮点神经网络模型中的浮点权重参数替换为定点权重参数;向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集;以及根据每个测试图在每一层输出的激活值确定针对该层输出的激活值的定点量化规则。优选地,该激活值量化装置922可以进一步用于:对每个测试图在每一层输出的激活值进行定点量化,以将经定点量化的激活值输入下一层。
量化装置910可以根据数据分布基于已确定的定点位宽来决定所述定点量化的数值范围。量化装置910可以根据如下策略之一决定所述定点量化的数值范围:在确保所有数据无溢出的情况下选择最小的定点量化数值范围;选择使得所有数据量化误差最小的定点量化数值范围,并将超出范围的数据值进行强制等于极值的饱和处理。优选地,量化装置910可以如上进行对称均匀量化,由此通过定点乘法、加法和移位操作就可以方便实现神经网络推理所需的大部分计算。
图10示出了根据本发明一个实施例可用于实现上述直接压缩方法的计算设备的结构示意图。
参见图10,计算设备1000包括存储器1010和处理器1020。
处理器1020可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器1020可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器1020可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。出于执行效率考虑,处理器1020优选为通用处理器(CPU)
存储器1010可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器1020或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器1010可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器1010可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器1010上存储有可处理代码,当可处理代码被处理器1020处理时,可以使处理器1020执行上文述及的直接定点方法。在一个实施例中,上文述及的压缩编译器可以实现为压缩编译程序,同样可由存储器1010存储,并由处理器1020执行。
在实际使用中,上述计算设备1000可以是包括大容量存储装置1010和CPU 1020的通用计算设备。该通用计算设备可以与专用于执行神经网络计算且至少部分由数字电路实现的定点计算平台相结合,以实现高效的神经网络计算。在一个实施例中,本发明的神经网络计算系统可以在包括通用处理器、存储器和数字电路的片上系统(SoC)实现。图11示出了可以使用经由本发明获取的定点神经网络的SoC的一个例子。
在一个实施例中,可由SoC上的数字电路部分(例如,FPGA)来实现本系统所需的深度学习网络,例如深度卷积神经网络。例如,使用FPGA或主要由FPGA组成的DPU来实现根据本发明所获得的二进制代码的具体执行部。由于CNN进行的是并行计算,因此通过逻辑硬件,尤其是FPGA来实现神经网络计算功能具有天然优势,并且相比于软件执行,能够实现更低的功耗。
在一个实施例中,可以首先将定点神经网络模型及其参数存储在片上系统的存储器(例如,主存储器)中,在随后进行神经网络计算或推理(例如,目标检测)时,可由图11所示的可编程逻辑模块(例如,实现为DPU)进行执行。由此通过减小权重占据的存储空间以及将浮点计算定点化来提升计算系统的整体运行效率。应该理解的是,还可以使用图11所示以外的其他架构来实现通用计算系统与异构计算系统(例如,DPU)的高效结合,这些架构都能够执行基于本发明方案获取的定点神经网络。例如,根据本发明的调整方案获取的定点ANN可以在至少部分由FPGA、GPU和/或ASIC实现的定点计算平台上执行,上述计算中涉及的定点位宽可由硬件电路的位宽所决定。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可由执行规定的功能或操作的专用的基于硬件的系统实现,或者可由专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (24)
1.一种调整人工神经网络(ANN)的方法,其中所述ANN至少包括多个层,所述方法包括:
获取经训练的浮点神经网络模型;
对所述浮点神经网络模型进行定点量化;以及
输出经定点量化的定点神经网络模型。
2.如权利要求1所述的方法,其中,对所述浮点神经网络模型进行定点量化包括:
对所述浮点神经网络模型多个层的权重参数进行定点量化。
3.如权利要求2所述的方法,其中,对所述浮点神经网络模型多个层的权重参数进行定点量化包括:
对所述浮点神经网络模型中每个带权重的层的权重分别进行定点量化。
4.如权利要求2所述的方法,其中,对所述浮点神经网络模型进行定点量化还包括:
确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则。
5.如权利要求4所述的方法,其中,确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则:
将所述浮点神经网络模型中的浮点权重参数替换为定点权重参数;
向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集;以及
根据每个测试图在每一层输出的激活值确定针对该层输出的激活值的定点量化规则。
6.如权利要求5所述的方法,其中,确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则:
对每个测试图在每一层输出的激活值进行定点量化,以将经定点量化的激活值输入下一层。
7.如权利要求6所述的方法,其中,根据每个测试图在每一层输出的激活值确定针对该层输出的激活值的定点量化规则包括如下之一:
选择所述校准数据集中针对该层出现次数最多的激活值数值范围作为针对该层输出的激活值数值范围;
求取所述校准数据集中针对该层输出的激活值数值范围的平均值作为针对该层输出的激活值数值范围;以及
求取所述校准数据集中针对该层输出的激活值数值范围的中位数作为针对该层输出的激活值数值范围。
8.如权利要求1-7中任一项所述的方法,其中,进行定点量化包括:
根据数据分布基于已确定的定点位宽来决定所述定点量化的数值范围。
9.如权利要求8所述的方法,其中,所述定点量化的数值范围根据如下策略之一决定:
在确保所有数据无溢出的情况下选择最小的定点量化数值范围;
选择使得所有数据量化误差最小的定点量化数值范围,并将超出范围的数据值进行强制等于极值的饱和处理。
10.如权利要求8所述的方法,其中,所述定点量化是对称均匀量化。
11.如权利要求1所述的方法,还包括:
在至少部分包括FPGA、GPU和/或ASIC的定点计算平台上使用所述定点神经网络模型执行推理。
12.如权利要求11所述的方法,其中,所述定点量化的位宽由所述FPGA、GPU和/或ASIC规定的位宽决定。
13.一种调整人工神经网络(ANN)的装置,其中所述ANN至少包括多个层,所述装置包括:
获取装置,用于获取经训练的浮点神经网络模型;
量化装置,用于对所述浮点神经网络模型进行定点量化;以及
输出装置,用于输出经定点量化的定点神经网络模型。
14.如权利要求13所述的装置,其中,所述量化装置包括:
权重量化装置,用于对所述浮点神经网络模型多个层的权重参数进行定点量化。
15.如权利要求14所述的装置,其中,所述权重量化装置对所述浮点神经网络模型中每个带权重的层的权重分别进行定点量化。
16.如权利要求14所述的装置,其中,所述量化装置还包括:
激活值量化装置,用于确定针对所述浮点神经网络模型中多个层输出的激活值的定点量化规则。
17.如权利要求16所述的装置,其中,所述激活值量化装置用于:
将所述浮点神经网络模型中的浮点权重参数替换为定点权重参数;
向权重参数定点的神经网络模型中输入包括多个测试图的校准数据集;以及
根据每个测试图在每一层输出的激活值确定针对该层输出的激活值的定点量化规则。
18.如权利要求17所述的装置,其中,所述激活值量化装置进一步用于:
对每个测试图在每一层输出的激活值进行定点量化,以将经定点量化的激活值输入下一层。
19.如权利要求13-18中任一项所述的装置,其中,所述量化装置根据数据分布基于已确定的定点位宽来决定所述定点量化的数值范围。
20.如权利要求19所述的装置,其中,所述量化装置根据如下策略之一决定所述定点量化的数值范围:
在确保所有数据无溢出的情况下选择最小的定点量化数值范围;
选择使得所有数据量化误差最小的定点量化数值范围,并将超出范围的数据值进行强制等于极值的饱和处理。
21.如权利要求19所述的装置,其中,所述量化装置进行对称均匀量化。
22.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-10中任何一项所述的方法。
23.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-10中任一项所述的方法。
24.一种定点计算平台,至少部分由FPGA、GPU和/或ASIC构成,用于基于根据权利要求1-10中任一项得到的所述定点神经网络模型进行推理计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810402123.6A CN110413255B (zh) | 2018-04-28 | 2018-04-28 | 人工神经网络调整方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810402123.6A CN110413255B (zh) | 2018-04-28 | 2018-04-28 | 人工神经网络调整方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110413255A true CN110413255A (zh) | 2019-11-05 |
CN110413255B CN110413255B (zh) | 2022-08-19 |
Family
ID=68357323
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810402123.6A Active CN110413255B (zh) | 2018-04-28 | 2018-04-28 | 人工神经网络调整方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110413255B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880038A (zh) * | 2019-11-29 | 2020-03-13 | 中国科学院自动化研究所 | 基于fpga的加速卷积计算的系统、卷积神经网络 |
CN111008701A (zh) * | 2019-12-03 | 2020-04-14 | 杭州嘉楠耘智信息科技有限公司 | 一种基于神经网络的数据量化方法、装置及计算机可读存储介质 |
CN111178258A (zh) * | 2019-12-29 | 2020-05-19 | 浪潮(北京)电子信息产业有限公司 | 一种图像识别的方法、系统、设备及可读存储介质 |
CN112308226A (zh) * | 2020-08-03 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 神经网络模型的量化、用于输出信息的方法和装置 |
CN112702600A (zh) * | 2020-12-29 | 2021-04-23 | 南京大学 | 一种图像编解码神经网络分层定点化方法 |
WO2021128293A1 (zh) * | 2019-12-27 | 2021-07-01 | 华为技术有限公司 | 模型训练方法、装置、存储介质和程序产品 |
CN113095472A (zh) * | 2020-01-09 | 2021-07-09 | 北京君正集成电路股份有限公司 | 卷积神经网络在量化过程前向推理降低精度损失的方法 |
CN113128659A (zh) * | 2020-01-14 | 2021-07-16 | 杭州海康威视数字技术股份有限公司 | 神经网络定点化方法、装置、电子设备及可读存储介质 |
WO2021163866A1 (zh) * | 2020-02-18 | 2021-08-26 | 杭州知存智能科技有限公司 | 神经网络权重矩阵调整方法、写入控制方法以及相关装置 |
CN113780513A (zh) * | 2020-06-10 | 2021-12-10 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
WO2022001126A1 (zh) * | 2020-06-30 | 2022-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的神经网络运算方法、装置及设备 |
CN114386588A (zh) * | 2022-03-23 | 2022-04-22 | 杭州雄迈集成电路技术股份有限公司 | 神经网络量化方法和装置、神经网络推理方法和系统 |
CN114611685A (zh) * | 2022-03-08 | 2022-06-10 | 安谋科技(中国)有限公司 | 神经网络模型中的特征处理方法、介质、设备和程序产品 |
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
WO2022151505A1 (zh) * | 2021-01-18 | 2022-07-21 | 深圳市大疆创新科技有限公司 | 神经网络量化方法、装置及计算机可读存储介质 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239938A (ja) * | 1994-02-28 | 1995-09-12 | Matsushita Electric Ind Co Ltd | 検査方法 |
JP2004219071A (ja) * | 2002-11-22 | 2004-08-05 | Hyogo Prefecture | 織物の風合い予測方法、装置、およびプログラム |
US20070094166A1 (en) * | 2002-08-05 | 2007-04-26 | Edwin Addison | Knowledge-based methods for genetic network analysis and the whole cell computer system based thereon |
CN105844330A (zh) * | 2016-03-22 | 2016-08-10 | 华为技术有限公司 | 神经网络处理器的数据处理方法及神经网络处理器 |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
CN106845640A (zh) * | 2017-01-12 | 2017-06-13 | 南京大学 | 基于深度卷积神经网络的层内非均匀的等间隔定点量化方法 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
CN107636697A (zh) * | 2015-05-08 | 2018-01-26 | 高通股份有限公司 | 基于浮点神经网络量化的定点神经网络 |
CN107657316A (zh) * | 2016-08-12 | 2018-02-02 | 北京深鉴科技有限公司 | 通用处理器与神经网络处理器的协同系统设计 |
CN107832082A (zh) * | 2017-07-20 | 2018-03-23 | 上海寒武纪信息科技有限公司 | 一种用于执行人工神经网络正向运算的装置和方法 |
CN107967517A (zh) * | 2016-10-19 | 2018-04-27 | 三星电子株式会社 | 用于神经网络量化的方法和设备 |
-
2018
- 2018-04-28 CN CN201810402123.6A patent/CN110413255B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07239938A (ja) * | 1994-02-28 | 1995-09-12 | Matsushita Electric Ind Co Ltd | 検査方法 |
US20070094166A1 (en) * | 2002-08-05 | 2007-04-26 | Edwin Addison | Knowledge-based methods for genetic network analysis and the whole cell computer system based thereon |
JP2004219071A (ja) * | 2002-11-22 | 2004-08-05 | Hyogo Prefecture | 織物の風合い予測方法、装置、およびプログラム |
CN107636697A (zh) * | 2015-05-08 | 2018-01-26 | 高通股份有限公司 | 基于浮点神经网络量化的定点神经网络 |
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
CN105844330A (zh) * | 2016-03-22 | 2016-08-10 | 华为技术有限公司 | 神经网络处理器的数据处理方法及神经网络处理器 |
CN106066783A (zh) * | 2016-06-02 | 2016-11-02 | 华为技术有限公司 | 基于幂次权重量化的神经网络前向运算硬件结构 |
CN107239829A (zh) * | 2016-08-12 | 2017-10-10 | 北京深鉴科技有限公司 | 一种优化人工神经网络的方法 |
CN107657316A (zh) * | 2016-08-12 | 2018-02-02 | 北京深鉴科技有限公司 | 通用处理器与神经网络处理器的协同系统设计 |
CN107967517A (zh) * | 2016-10-19 | 2018-04-27 | 三星电子株式会社 | 用于神经网络量化的方法和设备 |
CN106845640A (zh) * | 2017-01-12 | 2017-06-13 | 南京大学 | 基于深度卷积神经网络的层内非均匀的等间隔定点量化方法 |
CN107832082A (zh) * | 2017-07-20 | 2018-03-23 | 上海寒武纪信息科技有限公司 | 一种用于执行人工神经网络正向运算的装置和方法 |
CN107480770A (zh) * | 2017-07-27 | 2017-12-15 | 中国科学院自动化研究所 | 可调节量化位宽的神经网络量化与压缩的方法及装置 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110880038A (zh) * | 2019-11-29 | 2020-03-13 | 中国科学院自动化研究所 | 基于fpga的加速卷积计算的系统、卷积神经网络 |
CN110880038B (zh) * | 2019-11-29 | 2022-07-01 | 中国科学院自动化研究所 | 基于fpga的加速卷积计算的系统、卷积神经网络 |
CN111008701A (zh) * | 2019-12-03 | 2020-04-14 | 杭州嘉楠耘智信息科技有限公司 | 一种基于神经网络的数据量化方法、装置及计算机可读存储介质 |
WO2021128293A1 (zh) * | 2019-12-27 | 2021-07-01 | 华为技术有限公司 | 模型训练方法、装置、存储介质和程序产品 |
CN111178258A (zh) * | 2019-12-29 | 2020-05-19 | 浪潮(北京)电子信息产业有限公司 | 一种图像识别的方法、系统、设备及可读存储介质 |
CN111178258B (zh) * | 2019-12-29 | 2022-04-22 | 浪潮(北京)电子信息产业有限公司 | 一种图像识别的方法、系统、设备及可读存储介质 |
CN113095472A (zh) * | 2020-01-09 | 2021-07-09 | 北京君正集成电路股份有限公司 | 卷积神经网络在量化过程前向推理降低精度损失的方法 |
CN113128659A (zh) * | 2020-01-14 | 2021-07-16 | 杭州海康威视数字技术股份有限公司 | 神经网络定点化方法、装置、电子设备及可读存储介质 |
WO2021163866A1 (zh) * | 2020-02-18 | 2021-08-26 | 杭州知存智能科技有限公司 | 神经网络权重矩阵调整方法、写入控制方法以及相关装置 |
CN113780513A (zh) * | 2020-06-10 | 2021-12-10 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
CN113780513B (zh) * | 2020-06-10 | 2024-05-03 | 杭州海康威视数字技术股份有限公司 | 网络模型量化、推理方法、装置、电子设备及存储介质 |
WO2022001126A1 (zh) * | 2020-06-30 | 2022-01-06 | 浪潮(北京)电子信息产业有限公司 | 一种基于fpga的神经网络运算方法、装置及设备 |
CN112308226A (zh) * | 2020-08-03 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 神经网络模型的量化、用于输出信息的方法和装置 |
CN112308226B (zh) * | 2020-08-03 | 2024-05-24 | 北京沃东天骏信息技术有限公司 | 神经网络模型的量化、用于输出信息的方法和装置 |
CN112702600A (zh) * | 2020-12-29 | 2021-04-23 | 南京大学 | 一种图像编解码神经网络分层定点化方法 |
WO2022151505A1 (zh) * | 2021-01-18 | 2022-07-21 | 深圳市大疆创新科技有限公司 | 神经网络量化方法、装置及计算机可读存储介质 |
CN114611685A (zh) * | 2022-03-08 | 2022-06-10 | 安谋科技(中国)有限公司 | 神经网络模型中的特征处理方法、介质、设备和程序产品 |
CN114386588A (zh) * | 2022-03-23 | 2022-04-22 | 杭州雄迈集成电路技术股份有限公司 | 神经网络量化方法和装置、神经网络推理方法和系统 |
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110413255B (zh) | 2022-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110413255A (zh) | 人工神经网络调整方法和装置 | |
CN110378468A (zh) | 一种基于结构化剪枝和低比特量化的神经网络加速器 | |
CN110555508B (zh) | 人工神经网络调整方法和装置 | |
US11250320B2 (en) | Neural network method and apparatus | |
US20210081798A1 (en) | Neural network method and apparatus | |
CN110222821A (zh) | 基于权重分布的卷积神经网络低位宽量化方法 | |
WO2020057161A1 (zh) | 一种用于卷积神经网络加速器的拆分累加器 | |
CN109871949A (zh) | 卷积神经网络加速器及加速方法 | |
Daghero et al. | Energy-efficient deep learning inference on edge devices | |
US11263513B2 (en) | Method and system for bit quantization of artificial neural network | |
CN115357554B (zh) | 一种图神经网络压缩方法、装置、电子设备及存储介质 | |
CN110647974A (zh) | 深度神经网络中的网络层运算方法及装置 | |
EP3893104A1 (en) | Methods and apparatus for low precision training of a machine learning model | |
CN109325590A (zh) | 用于实现计算精度可变的神经网络处理器的装置 | |
CN110503182A (zh) | 深度神经网络中的网络层运算方法及装置 | |
Li et al. | A compression pipeline for one-stage object detection model | |
CN114239949A (zh) | 一种基于双阶段注意力机制的网站访问量预测方法及系统 | |
CN113506175A (zh) | 中小企业风险预警模型优化方法、装置、设备和存储介质 | |
CN110751400A (zh) | 一种风险评估方法及装置 | |
Yan et al. | Efficient spiking neural network design via neural architecture search | |
US11100321B2 (en) | Information processing method and information processing system | |
CN111814676A (zh) | 基于kl散度的fpga离线量化方法 | |
Du et al. | Model quantization and hardware acceleration for vision transformers: A comprehensive survey | |
Yan et al. | S-GAT: Accelerating graph attention networks inference on FPGA platform with shift operation | |
US20210390398A1 (en) | Data processing method and device, 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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200902 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. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |