当前位置: 首页 > 专利查询>上海大学专利>正文

基于神经网络权重数据分布特点的量化方法技术

技术编号:27657709 阅读:23 留言:0更新日期:2021-03-12 14:21
一种基于神经网络权重数据分布特点的量化方法,通过将神经网络中的包含参数的任意一层的权重的分布情况进行统计后,根据统计结果设置码值分配数量,并根据该数量将不同范围下的参数分别分割为对应的子范围,每个子范围内的参数以代表值作为其量化值,最后将每个代表值编码后制表,计算时通过读入码值查表得到对应参与计算的量化值。本发明专利技术能够充分利用比特位数,使每个数据都能根据自身参与计算的频率来得到充分的计算,在保证网络性能的同时大幅度降低存储量实现减少参数存储量的目的,且无需训练。

【技术实现步骤摘要】
基于神经网络权重数据分布特点的量化方法
本专利技术涉及的是一种神经网络应用领域的技术,具体是一种基于神经网络权重数据分布特点的量化方法,可用于各种冗余性高的神经网络与便携设备相组合的场景如智能手机等。
技术介绍
现有的神经网络通过加深网络、扩大网络尺寸以追求更高的边缘精度,但同时网络参数变得越来越大,计算量也快速增大,这样网络的冗余性也非常大,提高精度后随之而来付出的代价就是进行一次网络的前向传播计算量巨大导致计算时间过长。现有的压缩技术之一为对网络参数进行均匀量化,其优点在于计算复杂度不高,容易进行处理操作,但在权值分布范围较大时候它对于小值的量化误差较大且将严重影响检测精度;另外还有现有技术通过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、制表表28比特码用于查找表的存储示意图步骤5、优化不同bit的代表值上述码表中的数据如0.875,0.625,本文档来自技高网...

【技术保护点】
1.一种基于神经网络权重数据分布特点的量化方法,其特征在于,通过将神经网络中的包含参数的任意一层的权重的分布情况进行统计后,根据统计结果设置码值分配数量,并根据该数量将不同范围下的参数分别分割为对应的子范围,每个子范围内的参数以代表值作为其量化值,最后将每个代表值编码后制表,计算时通过读入码值查表得到对应参与计算的量化值。/n

【技术特征摘要】
1.一种基于神经网络权重数据分布特点的量化方法,其特征在于,通过将神经网络中的包含参数的任意一层的权重的分布情况进行统计后,根据统计结果设置码值分配数量,并根据该数量将不同范围下的参数分别分割为对应的子范围,每个子范围内的参数以代表值作为其量化值,最后将每个代表值编码后制表,计算时通过读入码值查表得到对应参与计算的量化值。


2.根据权利要求1所述的方法,其特征是,所述的统计结果,将小于2-11手动调整为0而不影响结果。


3.根据权利要求1所述的方法,其特征是,所述的码值分配数量是指:正负分配数量满足其中:设码值总数为M,由于权重正负值分布对称,则正负码值总数各为存储码值的位数设为N,则M=2N,统计的范围[2-(n+1),2-n]范围内的权重数量为i[n],权重总数量为I。


4.根据权利要求1所述的方法,其特征是,所述的码值分配数量,当计算得到大值的权重分配数量小于1时,则手动调整分配数量为2,大值的码值分配更多,相对应的减少小...

【专利技术属性】
技术研发人员:徐顺锋曹姗徐树公张舜卿
申请(专利权)人:上海大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1