Towards Accurate Post-training Network Quantization via Bit-Split and Stitching

自动化所的一篇文章, 文章地址, 代码地址

文章主要有两个创新点

  1. 将量化后的weigths进行split, 然后优化每一位bit, 使得目标函数最小, 得到每一位的bit后再将所有位的bit进行stitching
  2. 在保证计算效率的前提下, 可以对Activation使用per-channel的量化, 论文中叫Error Compensated Activation Quantization(ECAQ)

下面针对这两条分别说明,

Bit-Split and Stitching

Bit-Split and Stitching

  • 常规的二进制, 第一位是符号位, 后面的是绝对值, 每一位只能取0或1. split的作用就是把符号位分配给每个bit, 经过split处理, 总位数会少1, 每一位可取值变为-1, 0, 1. 可表示的范围其实没变都是最小位-111, 最大111.
    经过这样处理后, 就可以利用论文中的公式进行优化, 优化这块不太懂. 大致思想还是迭代, 每次迭代时, 固定其他值, 然后求解其中某一位的值.

其实我不太懂, 为什么这里split后求解得出的量化值和scale精度就会更好

  • conv/fc的计算过程可以表示位 $ Y = W^{T}X ( 假 设 (假设 (W$shape为[M, N] X X Xshape为[N, C], 则 Y Y Y的shape为[M, C]), 经过per_tensor量化后变为 Y = α W ^ X ^ β Y = \alpha \hat{W}\hat{X}\beta Y=αW^X^β其中 α \alpha α β \beta
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值