[发明专利]基于低精度浮点数的CNN量化方法、前向计算方法及硬件装置有效
申请号: | 201910940682.7 | 申请日: | 2019-09-30 |
公开(公告)号: | CN110852434B | 公开(公告)日: | 2022-09-23 |
发明(设计)人: | 吴晨;王铭宇;徐世平 | 申请(专利权)人: | 梁磊 |
主分类号: | G06N3/08 | 分类号: | G06N3/08;G06N3/04 |
代理公司: | 成都弘毅天承知识产权代理有限公司 51230 | 代理人: | 赖林东 |
地址: | 225000 江苏省扬州市维*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 精度 浮点 cnn 量化 方法 计算方法 硬件 装置 | ||
1.基于低精度浮点数的CNN量化方法,其特征在于:包括在卷积神经网络进行的如下步骤:
步骤1:定义所述网络的低精度浮点数表现形式MaEb,所述低精度浮点数表现形式包括符号位、尾数和指数,其中,a、b均为正整数;
步骤2:在优化低精度浮点数表示形式过程中,同时更改比例因子、更改a和b的组合和计算所述网络每一层量化前后的权重和激活值均方差,根据量化前后的权重和激活值均方差最小值获取最优的低精度浮点数表示形式和所述表示形式下的最优比例因子;
步骤3:基于上述低精度浮点数表示形式和最优比例因子,完成单精度浮点数量化为低精度浮点数。
2.根据权利要求1所述的基于低精度浮点数的CNN量化方法,其特征在于:所述步骤1中低精度浮点数表现形式的十进制值计算如下:
其中,Vdec表示低精度浮点数表现形式的十进制值,S,M和E分别表示符号位,尾数和指数,均为无符号的值,Eb表示指数的偏置,用于为指数引入正数和负数,表示为:
其中,DWE表示指数的位宽,尾数和指数的位宽均为非固定的。
3.根据权利要求1所述的基于低精度浮点数的CNN量化方法,其特征在于:所述步骤2包括如下步骤:
步骤2.1:将单精度浮点数乘以比例因子映射至低精度浮点数能够表示的动态范围内,将映射后的数四舍五入成最接近的低精度浮点数,并将超过动态范围的数据保留成最大值或者最小值,计算公式如下:
Vlfp=quan(Vfp32×2sf,MINlfp,MAXlfp)
其中,Vlfp和Vfp32表示由低精度浮点数和单精度浮点数形式表示的十进制的值,MINlfp和MAXlfp表示低精度浮点数能够表示的最小值和最大值,sf表示比例因子,quan(x,MIN,MAX)表示对任意浮点数x在范围MIN到MAX之间进行量化,round(x)表示表示对任意浮点数x进行四舍五入;
步骤2.2:计算量化前后权重和激活值均方差MSE,所述量化前后的权重和激活值均方差表示量化误差,计算如下:
其中,N表示权重和激活值的数量;
步骤2.3:更改比例因子,重复步骤2.1和2.2;
步骤2.4:更改低精度浮点数表示形式即MaEb中a和b的组合,重复步骤2.1、2.2和2.3;
步骤2.5:将权重和激活值均方差最小值对应的低精度表示形式和比例因子作为最优的结果。
4.根据权利要求1所述的基于低精度浮点数的CNN量化方法,其特征在于:所述低精度浮点数表现形式的十进制值在当E=0时的非规约数时,其计算为:
其中,Vdec表示低精度浮点数表现形式的十进制值,S表示符号位,M表示尾数,Eb表示指数的偏置,均为无符号的值。
5.一种基于权利要求1所述量化方法的卷积层前向计算方法,其特征在于:包括在卷积神经网络中进行如下步骤:
步骤a:将单精度浮点数的输入数据量化为低精度浮点数表现形式的MaEb的浮点数,所述输入数据包括输入激活值、权重和偏置,其中,a、b均为正整数;
步骤b:将MaEb的浮点数分发至浮点数功能模块中并行的Nm个低精度浮点数乘法器进行前向计算得到全精度浮点数乘积,其中,Nm表示浮点数功能模块中一个处理单元PE低精度浮点数乘法器的数量;
步骤c:将所述全精度浮点数乘积传输至数据转换模块获取无精度损失的定点数结果;
步骤d:将所述定点数结果分配至并行的4T个定点数加法树后,将定点数加法树结果和输入数据中的偏置经过后处理单元依次进行累加、池化和激活完成卷积层计算,其中,T为正整数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于梁磊,未经梁磊许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910940682.7/1.html,转载请声明来源钻瓜专利网。