4.2.6.2. qconfig

horizon_plugin_pytorch.quantization.get_default_qconfig(activation_fake_quant='fake_quant', weight_fake_quant='fake_quant', activation_observer='min_max', weight_observer='min_max', activation_qkwargs=None, weight_qkwargs=None)

Get default qconfig.

参数
  • activation_fake_quant (str) – FakeQuantize type of activation, default is fake_quant. Available items are fake_quant, lsq, pact.

  • weight_fake_quant (str) – FakeQuantize type of weight, default is fake_quant. Available items are fake_quant, lsq and pact.

  • activation_observer (str) – Observer type of activation, default is min_max. Available items are min_max, fixed_scale, clip, percentile, clip_std, mse, kl.

  • weight_observer (str) – Observer type of weight, default is min_max. Available items are min_max, fixed_scale, clip, percentile, clip_std, mse.

  • activation_qkwargs (dict) – Args of activation FakeQuantize and Observer.

  • weight_qkwargs (dict) – Args of weight FakeQuantize and Observer.

4.2.6.2.1. qconfig 定义示例

default_qat_8bit_fake_quant_qconfig = get_default_qconfig(
    activation_fake_quant="fake_quant",
    weight_fake_quant="fake_quant",
    activation_observer="min_max",
    weight_observer="min_max",
    activation_qkwargs=None,
    weight_qkwargs={"qscheme": torch.per_channel_symmetric, "ch_axis": 0,},
    )

default_qat_8bit_weight_32bit_out_fake_quant_qconfig = get_default_qconfig(
    activation_fake_quant=None,
    weight_fake_quant="fake_quant",
    activation_observer=None,
    weight_observer="min_max",
    activation_qkwargs=None,
    weight_qkwargs={"qscheme": torch.per_channel_symmetric, "ch_axis": 0,},
    )

default_calib_8bit_fake_quant_qconfig = get_default_qconfig(
    activation_fake_quant="fake_quant",
    weight_fake_quant="fake_quant",
    activation_observer="percentile",
    weight_observer="min_max",
    activation_qkwargs=None,
    weight_qkwargs={"qscheme": torch.per_channel_symmetric, "ch_axis": 0,},
    )

default_calib_8bit_weight_32bit_out_fake_quant_qconfig = (
    default_qat_out_8bit_fake_quant_qconfig
    )

default_qat_8bit_weight_16bit_act_fake_quant_qconfig = get_default_qconfig(
    activation_fake_quant="fake_quant",
    weight_fake_quant="fake_quant",
    activation_observer="min_max",
    weight_observer="min_max",
    activation_qkwargs={"dtype": qint16,},
    weight_qkwargs={"qscheme": torch.per_channel_symmetric, "ch_axis": 0,},
)

default_calib_8bit_weight_16bit_act_fake_quant_qconfig = get_default_qconfig(
    activation_fake_quant="fake_quant",
    weight_fake_quant="fake_quant",
    activation_observer="percentile",
    weight_observer="min_max",
    activation_qkwargs={"dtype": qint16,},
    weight_qkwargs={"qscheme": torch.per_channel_symmetric, "ch_axis": 0,},
)