compress

module compress

compress模块用来做Quantization-Aware-Training(QAT)训练量化,提供了训练量化的接口


compress.Feature_Scale_Method

对特征的量化方式,可以针对整个特征进行量化,也可以针对每个channel进行量化

  • 类型:Enum

  • 枚举值:

    • PER_TENSOR

    • PER_CHANNEL


compress.Scale_Update_Method

scale的更新方式

  • 类型:Enum

  • 枚举值:

    • MAXIMUM

    • MOVING_AVERAGE


train_quant(module, |quant_bits, feature_scale_method, scale_update_method)

训练量化

参数:

  • module 待训练模型

  • quant_bits 量化位数,默认为 8

  • feature_scale_method 特征的量化方式,默认为 PER_TENSOR

  • scale_update_method scale的更新方式,默认为 MOVING_AVERAGE

返回:是否成功

返回类型:bool

示例

# args are self-explained
nn.compress.train_quant(module, quant_bits = 8, feature_scale_method = Feature_Scale_Method.PER_TENSOR, scale_update_method = Scale_Update_Method.MOVING_AVERAGE)