量化部署意义

       模型量化将模型的参数离散化,原本32bit的浮点数被映射到8bit的整数上,模型的大小压缩4倍左右;将计算层的输入进行离散化,原本32bit浮点数的乘加操作变为8bit的整数乘加操作,减少了模型推理的计算量,在cpu上能够有2到3倍的速度提升,在DSP上能够有10倍左右的速度提升。

        对于量化效果的提升,华为海思部门给出了更改caffe框架、使用量化库进行网络finetune的方法。鉴于caffe训练框架更新维护不够,pytorch框架使用较多的情况,笔者写了基于pytorch的NNIE量化感知训练包nnieqat,方便进行量化感知训练和部署。

nnieqat 安装方便,直接 pip install 后加载模块进行使用, 训练过程中使用四个函数 register_quantization_hook 、merge_freeze_bn、 quant_dequant_weight、 unquant_weight ,增加不到10行代码就可以方便的进行nnie量化感知训练。

四个函数分别对应的功能如下:

  • register_quantization_hook: 为需要量化的层添加了register_forward_pre_hook, register_forward_hook,进行权重量化和激活量化。

  • merge_freeze_bn:合并convolution层和batchnorm层,并固定batchnorm参数防止出现训练不稳定现象。

  • quant_dequant_weight:使用量化反量化后的权重。

  • unquant_weight:使用原始的权重。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值