CN112488285A - 基于神经网络权重数据分布特点的量化方法 - Google Patents
基于神经网络权重数据分布特点的量化方法 Download PDFInfo
- Publication number
- CN112488285A CN112488285A CN201910864736.6A CN201910864736A CN112488285A CN 112488285 A CN112488285 A CN 112488285A CN 201910864736 A CN201910864736 A CN 201910864736A CN 112488285 A CN112488285 A CN 112488285A
- Authority
- CN
- China
- Prior art keywords
- value
- values
- neural network
- code
- calculation
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 24
- 238000011002 quantification Methods 0.000 title description 3
- 238000004364 calculation method Methods 0.000 claims abstract description 26
- 238000013139 quantization Methods 0.000 claims abstract description 17
- 238000012549 training Methods 0.000 abstract description 2
- 238000005457 optimization Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 101150041570 TOP1 gene Proteins 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 101100153581 Bacillus anthracis topX gene Proteins 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/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
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
一种基于神经网络权重数据分布特点的量化方法,通过将神经网络中的包含参数的任意一层的权重的分布情况进行统计后,根据统计结果设置码值分配数量,并根据该数量将不同范围下的参数分别分割为对应的子范围,每个子范围内的参数以代表值作为其量化值,最后将每个代表值编码后制表,计算时通过读入码值查表得到对应参与计算的量化值。本发明能够充分利用比特位数,使每个数据都能根据自身参与计算的频率来得到充分的计算,在保证网络性能的同时大幅度降低存储量实现减少参数存储量的目的,且无需训练。
Description
技术领域
本发明涉及的是一种神经网络应用领域的技术,具体是一种基于神经网络权重数据分布特点的量化方法,可用于各种冗余性高的神经网络与便携设备相组合的场景如智能手机等。
背景技术
现有的神经网络通过加深网络、扩大网络尺寸以追求更高的边缘精度,但同时网络参数变得越来越大,计算量也快速增大,这样网络的冗余性也非常大,提高精度后随之而来付出的代价就是进行一次网络的前向传播计算量巨大导致计算时间过长。现有的压缩技术之一为对网络参数进行均匀量化,其优点在于计算复杂度不高,容易进行处理操作,但在权值分布范围较大时候它对于小值的量化误差较大且将严重影响检测精度;另外还有现有技术通过2的幂次进行量化,但这种方案同样对于一些值的误差较大,影响性能。
此外,虽然现有技术通过利用GPU的并行计算能力,使计算时长在一定程度上缩短,但GPU价格昂贵,功耗较大的同时便携性差也成为其无法忽视的缺点。随着智能便携设备的流行,急需一种能压缩网络在推理过程减少计算量和存储量而同时又能使检测达到一个令人满意的精度的方法。
发明内容
本发明针对现有技术权重分布范围广,最大最小值差距大导致小值量化后精度不高所产生的问题,提出一种基于神经网络权重数据分布特点的量化方法,能够充分利用比特位数,使每个数据都能根据自身参与计算的频率来得到充分的计算,在保证网络性能的同时大幅度降低存储量实现减少参数存储量的目的,且无需训练。
本发明是通过以下技术方案实现的:
本发明涉及一种基于神经网络权重数据分布特点的量化方法,通过将神经网络中的包含参数的任意一层的权重的分布情况进行统计后,根据统计结果设置码值分配数量,并根据该数量将不同范围下的参数分别分割为对应的子范围,每个子范围内的参数以代表值作为其量化值,最后将每个代表值编码后制表,计算时通过读入码值查表得到对应参与计算的量化值。
所述的包含参数的任意一层采用但不限于卷积层。
所述的统计结果,优选将小于2-11手动调整为0而不影响结果。
所述的码值分配数量是指:正负分配数量满足其中:设码值总数为M,由于权重正负值分布对称,则正负码值总数各为存储码值的位数设为N,则M=2N,统计的范围[2-(n+1),2-n]范围内的权重数量为i[n],权重总数量为I。
所述的码值分配数量,优选当计算得到大值(相对较大的值)的权重分配数量小于1时,则手动调整分配数量为2,大值的码值分配更多,相对应的减少小值的码值分配。
所述的制表,即将代表值ym进行存储,不同的N值对应着不同的ym和ym的数量。
对于卷积层中卷积操作所涉及的偏置bias,因为其数据很小实验表明对检测结果影响很小,所以bias都设置为0。
优选地,针对神经网络中的不同层,采用不同的优选码值M和代表值ym,不同比特的码值M和存储参与计算的ym有不同的效果,比特数越小,权重占用的存储越少,计算效率越高,但性能会逐步下降,故比特数与性能的权衡是优化的重点,本发明中优选码值M为代表值ym的数量,如8bit码则M=28=256,ym的数量为256。
优选地,对本发明得到的量化值进一步再训练后作为所述的神经网络的权重能够进一步提高神经网络的性能,进一步优选地,将训练后的权重进一步通过本发明所述方法进行量化。
所述的参与计算的量化值是指:根据码值通过查找表找到对应的代表值,将代表值作为权值参与神经网络中待处理数据的计算并将计算结果输出至下一层。
技术效果
与现有技术相比,本发明运用查找表存储用于计算的代表值,能使存储量有效减少且保持较高精度,其技术效果进一步包括:
1)存储量有效减少:读取码值通过查找表找到代表值进行计算,一个代表值能最大限度地多次复用计算,码数量也是有限,使代表值在存储位数有限的情况下最大限度地接近原来权重值,通过分布范围内出现的次数而分配的码值利用率更高,且码值数量和代表值位数都可进一步减少。
2)更低比特数:不仅仅8比特的码值,7比特的码值也足够用,若对更低比特的码值进行分层优化,能进一步提高精度
3)低复杂度:整个通过码分配数值的方案不需要其他新颖的单元,只需要读取码值而后通过查找表找到对应的代表值进行计算即可。
附图说明
图1为本发明流程示意图;
图2为实施例效果示意图;
图3为实施例效果示意图。
具体实施方式
以下实施例使用ResNet50,比较的基准是使用tensorflow框架的ResNet50用于ImageNet的检测精度。
实施例1
如图1所示,本实施例采用8比特码和不同比特代表值ym,具体步骤包括:
步骤1、选择具有代表性的一层卷积层权重统计其权重的分布情况,如表1所示:
[0] | 39 | [8] | 452 | [16] | 2 | [24] | 0 |
[1] | 427 | [9] | 214 | [17] | 0 | [25] | 0 |
[2] | 1138 | [10] | 98 | [18] | 0 | [26] | 0 |
[3] | 1480 | [11] | 50 | [19] | 1 | [27] | 0 |
[4] | 1655 | [12] | 22 | [20] | 0 | [28] | 0 |
[5] | 1595 | [13] | 14 | [21] | 0 | [29] | 0 |
[6] | 1386 | [14] | 9 | [22] | 0 | [30] | 0 |
[7] | 823 | [15] | 3 | [23] | 0 | [31] | 0 |
表1一层卷积层权重统计分布情况
由统计情况可知绝大部分的值分布在[2-8,20],所以将小于2-8的值都设为0
步骤2、计算码分配数量
在[2-8,20]范围内的值共有8995个,根据可得x0=0.55,由于子范围的个数x0必为整数,且神经网络中的权重大值相对于小值对检测精度的影响更大,故给大值尽量分配更多的子范围以减少精度损失,故x0取为2。同理可得x1=8,x2=18,x3=22,x4=24,x5=24,x6=20,x7=10。
步骤3、子范围的代表值
因为在[2-1,20]范围内,x0=2,所以在这个范围内可以分成2个子范围,每个子范围的范围中间值作为代表值,凡是落到这个子范围的权重值统一用代表值表示。根据公式(2)
代入,得:
其他子范围同理。
步骤4、制表
表2 8比特码用于查找表的存储示意图
步骤5、优化不同bit的代表值
上述码表中的数据如0.875,0.625,0.484375等代表值可以用更低比特位数表示,进一步降低存储量。
Float | 13bit | 12bit | 11bit | 10bit | 9bit | 8bit | |
Top1 | 63.4 | 61.5 | 60.7 | 60.2 | 58.9 | 51.5 | 28.6 |
Top5 | 83.0 | 83.2 | 83 | 83.3 | 80.5 | 75.3 | 50.2 |
表3用不同比特存储代表值的精度结果
如图2所示,可以发现8bit存储数据表达力不够使精度快速下降。
实施例2
不同比特码和16比特代表值ym:不仅仅代表值的存储可以降低,降低码数量更能降低存储量,先前采用的是8bit码值,进行优化成7比特,6比特,5比特,4比特。同样使用实施例1进行码值分配,可以看出随着码值比特数下降,精度逐步下降,到4比特时,码值表现力显然不足,精度呈断崖式下降。
表4不同比特码数分配方案
top1 | top5 | |
8bit | 63.4 | 83 |
7bit | 61.6 | 81.2 |
6bit | 59.3 | 81 |
5bit | 54.7 | 76.9 |
4bit | 15.9 | 33.1 |
表5不同比特码数精度结果
如图3所示,为不同比特码数精度结果。
实施例3
分层不同码方案优化:
i)6比特码分层优化
数据范围在[20,2-8],[2-1,2-8],[2-1,2-9],[2-2,2-10]的码分配方案
(-1,0) | (-2,-1) | (-3,-2) | (-4,-3) | (-5,-4) | (-6,-5) | (-7,-6) | (-8,-7) | (-9,-8) | (-10,-9) | |
[2<sup>0</sup>,2<sup>-8</sup>] | 1 | 4 | 6 | 6 | 6 | 5 | 3 | 1 | ||
[2<sup>-1</sup>,2<sup>-8</sup>] | 4 | 5 | 5 | 6 | 6 | 5 | 1 | |||
[2<sup>-1</sup>,2<sup>-9</sup>] | 4 | 6 | 6 | 6 | 5 | 3 | 1 | 1 | ||
[2<sup>-2</sup>,2<sup>-10</sup>] | 6 | 6 | 6 | 5 | 3 | 3 | 2 | 1 |
表6 6比特不同数据范围的分配码方案
ii)5比特码分层优化
5比特的方案可分配的码数量进一步减少,所以对应的方案则是进一步缩小数据范围,将小于2-8的权重值置于0,数据范围在[20,2-7],[2-1,2-8],[2-2,2-8]的码分配方案如表7所示:
表7 5比特不同数据范围的分配码方案
优化后的精度比较
top1 | top5 | |
6bit未优化 | 57.3 | 80 |
6bit优化 | 59.6 | 82.9 |
Diff | +2.3 | +2.9 |
5bit未优化 | 53.9 | 78 |
5bit优化 | 54.4 | 78.2 |
Diff | +0.5 | 0.2 |
表8优化前后精度比较
本发明根据权重在不同范围内的分布数量的不同划分不同数量的子范围,取中间值作为代表值参与计算,并为之编码,计算时读取编码找到对应的代表值进行计算。
本发明通过将原来的网络直接读取权重改为读取存储量更少的码值,通过查找表找到参与计算的代表值;通过分层优化,根据每一层的权重分布特点的不同,使用不同的码值分配方案进一步提升了精度。
在计算机中,搭建ResNet50的神经网络框架,对权重进行本发明的量化操作,能够使同为8bit的量化,传统方法的top1精度为49%,本方法top1能达到63.4%。由此可见本方法能够显著减少存储空间和量化损失,并提供神经网络更高的精度。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。
Claims (10)
1.一种基于神经网络权重数据分布特点的量化方法,其特征在于,通过将神经网络中的包含参数的任意一层的权重的分布情况进行统计后,根据统计结果设置码值分配数量,并根据该数量将不同范围下的参数分别分割为对应的子范围,每个子范围内的参数以代表值作为其量化值,最后将每个代表值编码后制表,计算时通过读入码值查表得到对应参与计算的量化值。
2.根据权利要求1所述的方法,其特征是,所述的统计结果,将小于2-11手动调整为0而不影响结果。
4.根据权利要求1所述的方法,其特征是,所述的码值分配数量,当计算得到大值的权重分配数量小于1时,则手动调整分配数量为2,大值的码值分配更多,相对应的减少小值的码值分配。
6.根据权利要求1所述的方法,其特征是,所述的制表,即将代表值ym进行存储,不同的N值对应着不同的ym和ym的数量。
7.根据权利要求1所述的方法,其特征是,所述的包含参数的任意一层,采用卷积层;对于卷积层中卷积操作所涉及的偏置设置为0。
8.根据权利要求1所述的方法,其特征是,针对神经网络中的不同层,码值M为代表值ym的数量。
9.根据权利要求1所述的方法,其特征是,对得到的量化值进一步再训练后作为所述的神经网络的权重能够进一步提高神经网络的性能;再将训练后的权重进一步通过所述方法进行量化。
10.根据权利要求1所述的方法,其特征是,所述的参与计算的量化值是指:根据码值通过查找表找到对应的代表值,将代表值作为权值参与神经网络中待处理数据的计算并将计算结果输出至下一层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864736.6A CN112488285A (zh) | 2019-09-12 | 2019-09-12 | 基于神经网络权重数据分布特点的量化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910864736.6A CN112488285A (zh) | 2019-09-12 | 2019-09-12 | 基于神经网络权重数据分布特点的量化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112488285A true CN112488285A (zh) | 2021-03-12 |
Family
ID=74920003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910864736.6A Pending CN112488285A (zh) | 2019-09-12 | 2019-09-12 | 基于神经网络权重数据分布特点的量化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112488285A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
CN107292458A (zh) * | 2017-08-07 | 2017-10-24 | 北京中星微电子有限公司 | 一种应用于神经网络芯片的预测方法和预测装置 |
US20190042948A1 (en) * | 2017-08-04 | 2019-02-07 | Samsung Electronics Co., Ltd. | Method and apparatus for generating fixed-point quantized neural network |
CN109389218A (zh) * | 2017-08-09 | 2019-02-26 | 上海寒武纪信息科技有限公司 | 数据压缩方法及压缩装置 |
CN109389208A (zh) * | 2017-08-09 | 2019-02-26 | 上海寒武纪信息科技有限公司 | 数据的量化装置及量化方法 |
CN109635936A (zh) * | 2018-12-29 | 2019-04-16 | 杭州国芯科技股份有限公司 | 一种基于重训练的神经网络剪枝量化方法 |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
-
2019
- 2019-09-12 CN CN201910864736.6A patent/CN112488285A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106796668A (zh) * | 2016-03-16 | 2017-05-31 | 香港应用科技研究院有限公司 | 用于人工神经网络中比特深度减少的方法和系统 |
US20190042948A1 (en) * | 2017-08-04 | 2019-02-07 | Samsung Electronics Co., Ltd. | Method and apparatus for generating fixed-point quantized neural network |
CN107292458A (zh) * | 2017-08-07 | 2017-10-24 | 北京中星微电子有限公司 | 一种应用于神经网络芯片的预测方法和预测装置 |
CN109389218A (zh) * | 2017-08-09 | 2019-02-26 | 上海寒武纪信息科技有限公司 | 数据压缩方法及压缩装置 |
CN109389208A (zh) * | 2017-08-09 | 2019-02-26 | 上海寒武纪信息科技有限公司 | 数据的量化装置及量化方法 |
CN109635936A (zh) * | 2018-12-29 | 2019-04-16 | 杭州国芯科技股份有限公司 | 一种基于重训练的神经网络剪枝量化方法 |
CN110222821A (zh) * | 2019-05-30 | 2019-09-10 | 浙江大学 | 基于权重分布的卷积神经网络低位宽量化方法 |
Non-Patent Citations (3)
Title |
---|
MD ZAHANGIR ALOM等: "Effective Quantization Approaches for Recurrent Neural Networks", 《2018 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN)》 * |
李文海等, 北京:人民邮电出版社 * |
蔡瑞初等: "面向"边缘"应用的卷积神经网络量化与压缩方法", 《计算机应用》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6941412B2 (en) | Symbol frequency leveling in a storage system | |
US8791843B2 (en) | Optimized bitstream encoding for compression | |
CN109104197B (zh) | 应用于卷积神经网络的非还原稀疏数据的编译码电路及其编译码方法 | |
CN1183683C (zh) | 使用前缀预测的位自适应编码方法 | |
CN116506073B (zh) | 一种工业计算机平台数据快速传输方法及系统 | |
CN109379598B (zh) | 一种基于fpga实现的图像无损压缩方法 | |
CN1118196A (zh) | 信号编码方法、信号编码装置、信号解码方法、信号解码装置和记录媒体 | |
US12010352B2 (en) | Coding method and related device | |
CN110782021B (zh) | 一种图像分类方法、装置、设备及计算机可读存储介质 | |
CN1852029A (zh) | 采用可变范围均匀量化的低密度奇偶校验码译码方法 | |
KR20160140381A (ko) | 가변 레이트 텍스처 압축을 수행하는 방법 및 압축기 | |
CN109428602A (zh) | 一种数据编码方法、装置以及存储介质 | |
CN111507465B (zh) | 一种可配置的卷积神经网络处理器电路 | |
CN112702600B (zh) | 一种图像编解码神经网络分层定点化方法 | |
CN105120276A (zh) | 自适应Motion JPEG编码方法和系统 | |
CN102014283A (zh) | 一阶差分前缀表示的图像数据无损压缩的编码方法 | |
CN114268323B (zh) | 支持行存的数据压缩编码方法、装置及时序数据库 | |
CN112488285A (zh) | 基于神经网络权重数据分布特点的量化方法 | |
CN1741394A (zh) | 一种计算反量化公式中的非线性函数的方法 | |
CN110874284A (zh) | 数据处理的方法和装置 | |
Tsern et al. | Video compression for portable communication using pyramid vector quantization of subband coefficients | |
US20230325374A1 (en) | Generation method and index condensation method of embedding table | |
CN107612554B (zh) | 数据压缩处理方法 | |
CN102075759B (zh) | 视频解码应用中动态存储器的低功耗编码方法 | |
CN115811317A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210312 |