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,},
)