Distiller:量化算法

Posted Yan_Joy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Distiller:量化算法相关的知识,希望对你有一定的参考价值。

Quantization Algorithms

量化算法

注意:
对于任何需要量化感知训练的以下方法,请参阅这里,了解如何使用Distiller的机制调用它。

基于范围的线性量化(Range-Based Linear Quantization)

让我们在此分解使用的术语:

  • 线性(Linear): 表示通过乘以数字常数(比例因子)来量化浮点值。
  • 基于范围(Range-Based): 意味着为了计算比例因子,我们查看张量值的实际范围。 在最原始的实现中,我们使用张量的实际最小/最大值。或者,我们使用一些基于张量范围/分布的推导来得出更窄的最小/最大范围,以便去除可能的异常值。这与此处描述的其他方法形成对比,我们可以将其称为基于截断的(clipping-based),因为它们在张量采用截断函数。

非对称(Asymmetric)与对称(Symmetric)

在这种方法中,我们可以使用两种模式 - 非对称对称

非对称模式

非对称模式下,我们将浮点范围中的最小值/最大值映射到整数范围的最小值/最大值。除了比例因子之外,这通过使用零点(也称为量化偏差,或偏移)来完成。

让我们用 x f x_f xf表示原始浮点张量,用 x q x_q xq表示量化张量,用 q x q_x qx表示比例因子,用 z p x zp_x zpx表示零点,以及用 n n n表示量化的比特。然后,我们得到:

x q = r o u n d ( ( x f − m i n x f ) 2 n − 1 m a x x f − m i n x f ⎵ q x ) = r o u n d ( q x x f − m i n x f q x ) ⎵ z p x = r o u n d ( q x x f − z p x )   x_q = round\\left ((x_f - min_x_f)\\underbrace\\frac2^n - 1max_x_f - min_x_f_q_x \\right) = round(q_x x_f - \\underbracemin_x_fq_x)_zp_x = round(q_x x_f - zp_x)\\ xq=round(xfminxf)qx maxxfminxf2n1=round(qxxfzpx minxfqx)=round(qxxfzpx) 

我们实际上使用 z p x = r o u n d ( m i n x f q x ) zp_x = round(min_x_fq_x) zpx=round(minxfqx)。这意味着零可以通过量化范围中的整数精确表示。例如,对于具有零填充的层(zero-padding),这很重要。通过四舍五入零点,我们有效地“微调”浮动范围中的最小值/最大值,以获得零的精确量化。

请注意,在上面的推导中,我们使用无符号整数来表示量化范围。也就是说, x q ∈ [ 0 , 2 n − 1 ] x_q \\in [0,2 ^ n-1] xq[0,2n1]。如果需要,可以使用有符号整数(可能由于硬件考虑因素。这可以通过减去 2 n − 1 2 ^ n-1 2n1来实现。

让我们看看卷积全连接层如何在非对称模式下量化(我们分别用 x , y , w x,y,w x,y,w b b b表示输入,输出,权重和偏置):

y f = ∑ x f w f + b f = ∑ x q + z p x q x w q + z p w q w + b q + z p b q b = y_f = \\sumx_f w_f + b_f = \\sum\\fracx_q + zp_xq_x \\fracw_q + zp_wq_w + \\fracb_q + zp_bq_b = yf=xfwf+bf=qxxq+zpxqwwq+zpw+qbbq+zpb=
= 1 q x q w ( ∑ ( x q + z p x ) ( w q + z p w ) + q x q w q b ( b q + z p b ) ) = \\frac1q_x q_w \\left( \\sum (x_q + zp_x) (w_q + zp_w) + \\fracq_x q_wq_b(b_q + zp_b) \\right) =qxqw1((xq+zpx)(wq+zpw)+以上是关于Distiller:量化算法的主要内容,如果未能解决你的问题,请参考以下文章

基于Distiller的模型压缩工具简介

Distiller:神经网络压缩研究框架

Distiller:神经网络压缩研究框架

开源 | Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型

图像量化与量子算法问题

装delphi2010,用)RAD Studio 2010 V14.3615 iso ,为啥我用Delphi.Distiller.v1.85破解工具破解不了,