Differentiable Soft Quantization: Bridging Full-Precision and Low-Bit Neural Networks

pytorch 实现 https://github.com/ricky40403/DSQ

亮点

使用tanh函数拟合量化函数,解决量化函数不可导的问题,

framework

模型压缩-量化-论文阅读-Differentiable Soft Quantization
图中是一个2bit量化的例子,量化函数原本是一个4段的阶梯函数,DSQ使用三段tanh函数来拟合量化函数,并随着训练的进行,DSQ函数和量化函数越来越接近。

公式

模型压缩-量化-论文阅读-Differentiable Soft Quantization模型压缩-量化-论文阅读-Differentiable Soft Quantization

Qs(x)Q_s(x) 是总体的拟合量化函数,其中ll是clip下界, uu是clip上界。

DSQ和量化函数的相似度

模型压缩-量化-论文阅读-Differentiable Soft Quantization

用在x=0.5x=0.5时量化函数和DSQ函数的差来拟合相似度,记为α\alphaα\alpha越小,拟合量化函数和量化函数越接近。

导数

模型压缩-量化-论文阅读-Differentiable Soft Quantization模型压缩-量化-论文阅读-Differentiable Soft Quantization

训练过程

前向:

模型压缩-量化-论文阅读-Differentiable Soft Quantization

反向:

模型压缩-量化-论文阅读-Differentiable Soft Quantization

实验效果

模型压缩-量化-论文阅读-Differentiable Soft Quantization

相关文章: