神经网络量化与调度技术解析
1. 神经网络量化技术
1.1 量化过程形式化
量化过程可以形式化表示如下:
- (T_{adj} = clip(\alpha, 0.5, 1) \cdot T_{I}) (6.13)
- (S_{I} = \frac{2^{n} - 1}{T_{adj}}) (6.14)
- (I_{q} = \lfloor I \cdot S_{I} \rfloor) (6.15)
权重的量化过程与之类似。当前的量化方案有两个不可微函数,即取整和裁剪。它们的导数定义如下:
- (I_{q} = \lfloor I \rfloor) (6.16)
- (\frac{dI_{q}}{dI} = 1) (6.17)
- (X_{c} = clip(X, a, b)) (6.18)
- (\frac{dX_{c}}{dX} = \begin{cases} 1, & \text{if } X \in [a, b] \ 0, & \text{otherwise} \end{cases}) (6.19)
偏置量化的执行方式与相关方法类似:
- (b_{q} = clip(\lfloor S_{i} \cdot S_{w} \cdot b \rfloor, -(2^{31} - 1), 2^{31} - 1)) (6.20)
1.2 非对称阈值训练
之前章节描述的对称阈值量化在某些设备上易于实现,但它对整数可用范围的利用效率低下,显著降低了量化模型的准确性。因此,决定采用适用于非对称阈值的训练过程。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



