---
title: ARQ
description: "ARQ （Adaptive Range Quantization）算法是对权重直接量化的算法。该算法提供了两种方式，channel_wise（是否对每个channel采用不同的量化因子，以PyTorch框架为例，参数解释请参见表20）量化和非channel_wise量化，量化原理图如下所示："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/amct/atlasamct_16_0387.html
sourcePath: /source/zh/canncommercial/900/devaids/amct/atlasamct_16_0387.html
indexId: 339eeb68bbeea7d430cfa0c20354fcb28395bf3ac3ac57993f2f43ce516eff0465
---
# ARQ

ARQ （Adaptive Range Quantization）算法是对权重直接量化的算法。该算法提供了两种方式，channel_wise（是否对每个channel采用不同的量化因子，以PyTorch框架为例，参数解释请参见表20）量化和非channel_wise量化，量化原理图如下所示：

图1 非channel_wise量化

图2 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时，会提示错误信息。
