剪枝与量化

剪枝就是将训练好的「大模型」的不重要的通道删除掉,在几乎不影响准确率的条件下对网络进行加速。而量化就是将浮点数(高精度)表示的权重和偏置用低精度整数(常用的有int8)来近似表示。

量化计算的验证:

用一层3x3网络验证量化计算,步骤如下:

  1. 提取网络参数,包括weight的value,zero_point,量化值和scale;
  2. 输入四张图片,将其转换成uint8 ;
  3. 进行卷积计算(定点) 然后再转换回浮点。 

一定要注意几个scale的作用:quan.scale和quan.zero_point是对输入的量化。这里需要注意输入是否做了归一化。原始输入是0-255(x),归一化后将会变成0-1。量化后又将变成0-255(y),x和y并不相同。量化采用每通道量化,而不是每tensor量化,因此精度更高,通道指的是输出通道。注意,weight和bias使用的是int8,而activate层用的是uint8。代码如下: #构造输入的量化tensor #构造参数的量化tensor #利用量化tensor做卷积和激活 #生成新的量化tensor #和推断的结果做对比。(理论上应该是完全一样的)

一共有三个scale和三个zero_point,因为weight为对称量化,因此可忽略不计,zero_point将只剩下两个。 FPGA计算全部都是定点计算。 bias讲首先量化成16bit的数(int16),量化方式是将其扩大1/(a*b)倍,输入将被量化成uint8,采用的方式是x/a+zero_point 输入和weight进行卷积后加上bias,激活之后重新量化成uint8。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值