DAY12&13(代码框架)

quantize

  • calibrate_method(‘EXTREME’,‘MEAN’,‘KLD’)
  • 若calibrate method为mean
    • calculate_op_statistic_info
    • self._cal_quantize_statistic_tensor()
代码架构
  • 用户喂进经过预处理的.npy文件,data_set.py处理,calibrate 求极值,save _max,_min.npy文件
    在这里插入图片描述
  • calibration 后得到outputs_min_max, ngamma_min_max, normalized_min_max, 校准weights和bias
  • 校准后的min_max_values和quantization method调入cal_scale_zp函数
    • (以下为方法一input函数)
      • q_precision: int8(-128~127), uint8(0 ~255), int16(-2** 8,2**8)
      • scale=(rmax-rmin)/(qmax-qmin)
      • initial_zero_pint=qmin-rmin/scale
      • out_scale,out_zp =1/scale,nudged_zero_point (float32,float32)
      • update self.out_scale_zp, self.out_scale
    • conv函数method分为symmetric与非symetric,其他计算方法大致相同
    • 若为pooing层,method为max时scale和zp不做优化,若method为avg,do scale, do shift and using lut
    • 若为concat层,原本将所有input_scale取最小值后变换操作得到output_scale
  • 在for循环外部,通过不断更新input_scale_zp来传参 (input_scale_zp.update(self.top_[0] : {‘scale’:out_scale,‘zp’:out_zp})),下一个op调用时,传入input_scale_zp[self.bottom_[0]:。。。]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值