CN114462591A - 一种动态量化神经网络的推理方法 - Google Patents
一种动态量化神经网络的推理方法 Download PDFInfo
- Publication number
- CN114462591A CN114462591A CN202111592468.0A CN202111592468A CN114462591A CN 114462591 A CN114462591 A CN 114462591A CN 202111592468 A CN202111592468 A CN 202111592468A CN 114462591 A CN114462591 A CN 114462591A
- Authority
- CN
- China
- Prior art keywords
- neural network
- layer
- tensor
- network model
- inference
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种动态量化神经网络的推理方法,属于神经网络量化技术领域,应用于FPGA/ASIC神经网络专用硬件。本发明包括:使用测试集对待量化神经网络的单精度浮点模型进行推理,统计单精度浮点模型每层输出张量的最大绝对值;根据每层输出张量的最大绝对值估计量化模型各层输出张量的比例因子;使用该比例因子统计值作为量化神经网络模型的计算参数,代替量化模型推理中每层输出张量的比例因子计算。本发明改善了现有神经网络量化模型在推理中比例因子计算复杂的问题。
Description
技术领域
本发明涉及一种动态量化神经网络的推理方法,属于神经网络量化技术领域,应用于FPGA/ASIC神经网络专用硬件。
背景技术
模型量化是一种广泛使用的压缩和加速深度神经网络推理的技术,量化模型减少存储和计算需求。在神经网络专用硬件中,模型推理性能瓶颈在于访存,提高计算密度对加速有显著的优化效果。
动态定点数是通过对张量中的整数值使用共同的指数,可以自由改变每个张量的指数。与浮点数相比,动态定点数降低了硬件中的内存和带宽要求,指数的存储和计算被整个张量分摊。
谷歌在2018年《Quantization and Training of Neural Networks forEfficient Integer Arithmetic Only Inference》文章中,提出了量化感知训练,在前向传播中加入伪量化,提升网络量化后的精度。
中国专利公开号CN110363281A,公开日为2019年10月22日,名称为“一种卷积神经网络量化方法、装置、计算机和存储介质”中公开了一种卷积神经网络量化方法,该方法对卷积神经网络进行量化,重训练量化后的网络,确定最佳的比例因子。但上述专利没有涉及量化神经网络推理中比例因子的计算方法,在模型推理时,输出张量的比例因子计算需要遍历整个输出张量找出最大绝对值。因此,上述专利不能减少量化模型的推理计算复杂度,不能达到推理加速的效果。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种动态量化神经网络的推理方法,减少量化模型的推理计算复杂度,达到推理加速的效果。
本发明的技术解决方案是:一种动态量化神经网络的推理方法,包括如下步骤:
步骤1,获得原始浮点神经网络模型,在已训练的神经网络模型中进行单精度浮点推理;在推理时,使用队列跟踪并存储所述神经网络模型各层算子输入输出张量的统计数据;
步骤2,根据所述统计数据,通过数据统计模型估计同一张量数值范围的趋势:
步骤4,在网络部署时将神经网络模型及步骤3获得的比例因子集合{si}作为硬件推理时网络输入参数。
进一步地,如果同一张量在神经网络模型中的不同计算中被重复使用,分别跟踪每次使用该张量的统计值。
进一步地,利用所述比例因子进行相邻层间等效放缩优化,对于相邻两层中权重张量对应比例因子相差较大且均为线性函数,对上下层权重进行相反放缩;
其中,X1,2为第一层第二层输入,Y1,2为第一层第二层输出,X2=Y1,C1,2为缩放因子,C1=1/C2。
进一步地,网络部署前对神经网络模型进行量化;量化的动态量化函数Q,满足如下公式:
一种动态量化神经网络的推理系统,包括:
推理模块,获得原始浮点神经网络模型,在已训练的神经网络模型中进行单精度浮点推理;在推理时,使用队列跟踪并存储所述神经网络模型各层算子输入输出张量的统计数据;
统计模块,根据推理模块获得的所述统计数据,通过数据统计模型估计同一张量数值范围的趋势:
进一步地,如果同一张量在神经网络模型中的不同计算中被重复使用,分别跟踪每次使用该张量的统计值;
利用所述比例因子进行相邻层间等效放缩优化,对于相邻两层中权重张量对应比例因子相差较大且均为线性函数,对上下层权重进行相反放缩;
其中,X1,2为第一层第二层输入,Y1,2为第一层第二层输出,X2=Y1,C1,2为缩放因子,C1=1/C2;
网络部署前对神经网络模型进行量化;量化的动态量化函数Q,满足如下公式:
一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现所述一种动态量化神经网络的推理方法的步骤。
一种动态量化神经网络的推理设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现所述一种动态量化神经网络的推理方法的步骤。
本发明与现有技术相比的优点在于:
(1)本发明通过追踪浮点网络推理中各张量的统计值,预测出各张量的最佳动态范围,即动态量化的比例因子;
(2)本发明通过使用预测的比例因子代替张量动态范围的计算,降低了推理硬件复杂度,加速了硬件推理速度;
(3)本发明通过简单的数值优化即相邻层间的等效放缩,提升了动态量化网络的精度,在YOLOv3中将8比特动态量化网络精度损失从5.5%下降至0.5%。
附图说明
图1是本发明的流程图;
图2是单通道层间等效放缩示意图;
图3为本发明一实例中支持位运算的神经网络加速硬件结构图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
以下结合说明书附图对本申请实施例所提供的一种动态量化神经网络的推理方法做进一步详细的说明,具体实现方式可以包括(如图1~3所示):
对量化前神经网络模型使用测试集进行浮点数推理,记录每层输入及输出张量的最大最小值、均值标准差;
通过数据统计模型来估计同一张量数值范围的趋势,利用它来预测溢出,并预先增加指数来防止溢出,同样如果数值范围的趋势下降,可以缩小指数以更好的利用可用范围,减小量化噪声;
根据统计数据对神经网络中每个张量预测出一个最佳的比例因子,如果同一张量在网络中的不同计算中被重复使用,分别跟踪每次使用该张量的统计值;
使用软件仿真,模拟硬件加速器量化推理过程,并验证网络输出结果的准确性;
对预测的比例因子进行相邻层间等效放缩优化,对于相邻两层中权重张量对应比例因子相差较大且均为线性函数,对上下层权重进行相反放缩;
在量化神经网络模型部署时,输入量化后的模型和比例因子集合,该比例因子为2的整数次幂,在硬件运算中使用移位运算代替比例因子的乘法运算;
模型推理时各层算子的输入和输出张量对应的比例因子直接作为计算单元的输入和输出定点数张量的指数。
在本申请实施例所提供的方案中,图1为本发明具体步骤实例提供的动态量化神经网络队里方法流程图。
步骤1,已训练的浮点网络推理。
对量化前神经网络模型使用测试集进行浮点数推理。本发明从互联网下载一个预训练好的YOLOv3-416网络模型,该网络中共有75个卷积层,使用了特征金字塔结构融合多尺度特征,是一个深度目标检测神经网络。
步骤2,权重及激活值统计。
记录每层输入及输出张量的最大最小值、均值标准差。使用队列来跟踪浮点推理中每个张量的统计值,存储这些值的历史数据。这些张量包括了原始网络中的权重等参数,还包括了推理过程中各层输出的激活值。
步骤3,各张量比例因子预测。
在动态量化的深度神经网络模型中,数值的范围变化足够缓慢,可以根据历史趋势高精度地预测指数。如果输入张量是独立同分布的,网络中每层的数值,如权重和激活值将具有接近的指数,根据历史统计数据直接使用指数是可行的。通过数据统计模型来估计同一张量数值范围的趋势,利用它来预测溢出,并预先增加指数来防止溢出,同样如果数值范围的趋势下降,可以缩小指数以更好的利用可用范围,减小量化噪声。
步骤4,量化推理通路分析。
使用软件仿真,模拟硬件加速器量化推理过程,并验证网络输出结果的准确性。在本发明的实例中,YOLOv3网络使用8比特动态量化后,与原始网络相比,平均精度损失为5.54%。
步骤5,比例因子优化。
对预测的比例因子进行相邻层间等效放缩优化,对于相邻两层中权重张量对应比例因子相差较大且均为线性函数,对上下层权重进行相反放缩。
图2是相邻两层间单通道等效放缩,YOLOv3中每个残差块内有两个卷积层可以进行比例因子优化,对网络中每个残差块使用一次均衡算法即可。假设这两层卷积层中权重某通道的量化范围为r1和r2,使用几何平均值来均衡二者,比例因子s为:
使用此公式对整个网络中所有残差块进行迭代,优化后第一个卷积层量化范围缩小了4倍,对应量化精度提升4倍,网络中各卷积层权重分布范围更为均衡。
经过优化后的8比特动态量化YOLOv3网络平均精度损失下降至0.46%。
步骤6,量化模型硬件推理。
图3为本发明一实例中支持位运算的神经网络加速硬件结构,在量化神经网络模型部署时,输入量化后的模型和比例因子集合,该比例因子为2的整数次幂,在硬件运算中使用移位运算代替比例因子的乘法运算。模型推理时各层算子的输入和输出张量对应的比例因子直接作为计算单元的输入和输出定点数张量的指数。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行图1所述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (10)
2.根据权利要求1所述的一种动态量化神经网络的推理方法,其特征在于:如果同一张量在神经网络模型中的不同计算中被重复使用,分别跟踪每次使用该张量的统计值。
8.根据权利要求7所述的系统,其特征在于:如果同一张量在神经网络模型中的不同计算中被重复使用,分别跟踪每次使用该张量的统计值;
利用所述比例因子进行相邻层间等效放缩优化,对于相邻两层中权重张量对应比例因子相差较大且均为线性函数,对上下层权重进行相反放缩;
其中,X1,2为第一层第二层输入,Y1,2为第一层第二层输出,X2=Y1,C1,2为缩放因子,C1=1/C2;
网络部署前对神经网络模型进行量化;量化的动态量化函数Q,满足如下公式:
9.一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,其特征在于,所述的计算机程序被处理器执行时实现如权利要求1~权利要求6任一所述方法的步骤。
10.一种动态量化神经网络的推理设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述的处理器执行所述的计算机程序时实现如权利要求1~权利要求6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111592468.0A CN114462591A (zh) | 2021-12-23 | 2021-12-23 | 一种动态量化神经网络的推理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111592468.0A CN114462591A (zh) | 2021-12-23 | 2021-12-23 | 一种动态量化神经网络的推理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114462591A true CN114462591A (zh) | 2022-05-10 |
Family
ID=81407490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111592468.0A Pending CN114462591A (zh) | 2021-12-23 | 2021-12-23 | 一种动态量化神经网络的推理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114462591A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
CN117009093A (zh) * | 2023-10-07 | 2023-11-07 | 之江实验室 | 降低神经网络推理所需内存占用量的重计算方法和系统 |
-
2021
- 2021-12-23 CN CN202111592468.0A patent/CN114462591A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114611697A (zh) * | 2022-05-11 | 2022-06-10 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
CN114611697B (zh) * | 2022-05-11 | 2022-09-09 | 上海登临科技有限公司 | 神经网络量化及部署方法、系统、电子设备及存储介质 |
CN117009093A (zh) * | 2023-10-07 | 2023-11-07 | 之江实验室 | 降低神经网络推理所需内存占用量的重计算方法和系统 |
CN117009093B (zh) * | 2023-10-07 | 2024-03-12 | 之江实验室 | 降低神经网络推理所需内存占用量的重计算方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Sohoni et al. | Low-memory neural network training: A technical report | |
US10831444B2 (en) | Quantized neural network training and inference | |
US11734568B2 (en) | Systems and methods for modification of neural networks based on estimated edge utility | |
CN110969251B (zh) | 基于无标签数据的神经网络模型量化方法及装置 | |
CN114462591A (zh) | 一种动态量化神经网络的推理方法 | |
US11450096B2 (en) | Systems and methods for progressive learning for machine-learned models to optimize training speed | |
US11972347B2 (en) | System and method for emulating quantization noise for a neural network | |
Al-Hami et al. | Methodologies of compressing a stable performance convolutional neural networks in image classification | |
WO2019006976A1 (zh) | 神经网络权重离散化方法、系统、设备和可读存储介质 | |
CN114418089A (zh) | 模型压缩方法、系统、部署方法、设备及存储介质 | |
CN116384244A (zh) | 一种基于物理增强神经网络的电磁场预测方法 | |
Ghaffari et al. | Is integer arithmetic enough for deep learning training? | |
Chang et al. | MSP: an FPGA-specific mixed-scheme, multi-precision deep neural network quantization framework | |
KR20210111677A (ko) | 뉴럴 네트워크의 클리핑 방법, 뉴럴 네트워크의 컨벌루션 계산 방법 및 그 방법을 수행하기 위한 전자 장치 | |
Chin et al. | A high-performance adaptive quantization approach for edge CNN applications | |
CN115392441A (zh) | 量化神经网络模型的片内适配方法、装置、设备及介质 | |
CN114830137A (zh) | 用于生成预测模型的方法和系统 | |
Hoang et al. | FPGA oriented compression of DNN using layer-targeted weights and activations quantization | |
US20220405561A1 (en) | Electronic device and controlling method of electronic device | |
CN112418388A (zh) | 一种实现深度卷积神经网络处理的方法及装置 | |
US11699077B2 (en) | Multi-layer neural network system and method | |
Ren et al. | Hardware implementation of KLMS algorithm using FPGA | |
CN110770696B (zh) | 基于贡献估计的处理核心操作抑制 | |
CN114222997A (zh) | 用于对神经网络进行后训练量化的方法和装置 | |
TWI819627B (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 |