quantize
产品支持情况
产品 |
是否支持 |
|---|---|
Atlas 350 加速卡 |
√ |
√ |
|
√ |
|
x |
|
x |
|
x |
功能说明
基于torch module的训练后量化接口,高精度模型转换为校准模型,得到量化校准模型,推理后计算得到量化参数。
函数原型
1 | quantize(model, config) |
参数说明
返回值说明
无
调用示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | # 建立待进行量化的网络图结构 ori_model = build_model() model = copy.deepcopy(ori_model) # 量化配置 cfg = { 'batch_num': 1, 'quant_cfg': { 'weights': { 'type': 'int8', 'symmetric': True, 'strategy': 'tensor', }, }, 'algorithm': {'minmax'}, } # 调用量化接口生成量化校准模型 quantize(model, cfg) |
config详细配置
key |
- |
- |
value |
|---|---|---|---|
batch_num |
- |
- |
uint32类型,量化使用的batch数量。 |
quant_cfg |
- |
- |
量化配置。 |
- |
weights |
- |
仅权重量化配置。 |
- |
- |
type |
string类型,权重(weight)量化类型。当前支持如下类型:
|
- |
- |
symmetric |
bool类型,权重是否为对称量化。
|
- |
- |
strategy |
string类型,权重量化粒度。
量化粒度介绍请参见压缩概念。 |
- |
- |
group_size |
仅权重量化场景配置,per-group量化粒度下group的大小,该参数只有配置了per-group后,才能配置。 要求传入值的范围为[32, K-1]且必须是32的倍数。 |
- |
inputs |
- |
数据量化配置。 |
- |
- |
type |
string类型,数据(activation)量化类型。目前支持如下类型:
|
- |
- |
symmetric |
bool类型,数据是否为对称量化。
|
- |
- |
strategy |
string类型,数据量化粒度。
|
algorithm |
- |
- |
string类型,量化算法,支持如下配置:
具体请参见压缩算法。 |
skip_layers |
- |
- |
string类型,按层名跳过哪些层不做量化,全局配置参数。指定层名后,只要层名包括用户设置的字符串,就跳过该层不做量化。 |
父主题: 基于torch module的量化接口