当前位置:   article > 正文

剪枝与量化_剪枝和量化的区别

剪枝和量化的区别

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/190770
推荐阅读
相关标签
  

闽ICP备14008679号