ARQ权重量化算法
ARQ (Adaptive Range Quantization)算法是对权重直接量化的算法。该算法提供了两种方式,channel_wise(是否对每个channel采用不同的量化因子,以PyTorch框架为例,参数解释请参见表20)量化和非channel_wise量化,量化原理图如下所示:
量化配置中ARQuantize(以PyTorch框架为例,参数解释请参见表1)提供的参数channel_wise用来选择量化方式:
- channel_wise为False时,选择图1量化方式,所有filter一起分析数据分布,进行量化,某一层的所有不同channel共用一个量化因子。
- channel_wise为True时,选择图2的量化方式,每个filter独立做数据分析,进行量化,同一层的每个channel有独立的量化因子。
一般来说,每一个filter独立进行量化,即进行图2的量化,量化精度较高;如果每个filter的数据量比较少,量化效果会比较差,此时推荐使用图1的量化。
注意:全连接层、平均下采样层Pooling(下采样方式为AVE,且非global pooling)没有channel,设置channel_wise为True时,会提示错误信息。
父主题: 训练后量化算法