BackendConfig#
- class torch.ao.quantization.backend_config.BackendConfig(name='')[source]#
一個配置,它定義了在給定後端上可量化的模式集合,以及如何從這些模式生成參考量化模型。
在此上下文中,模式指的是模組、函式、運算元或上述內容的有向無環圖。目標後端上支援的每個模式都可以透過
BackendPatternConfig進行單獨配置,具體包括:支援的輸入/輸出啟用、權重和偏差資料型別
如何插入 observers 和 quant/dequant op 來構建參考模式,以及
(可選) 融合、QAT 和參考模組對映。
模式的格式描述在: pytorch/pytorch
使用示例
import torch from torch.ao.quantization.backend_config import ( BackendConfig, BackendPatternConfig, DTypeConfig, ObservationType, ) weighted_int8_dtype_config = DTypeConfig( input_dtype=torch.quint8, output_dtype=torch.quint8, weight_dtype=torch.qint8, bias_dtype=torch.float) def fuse_conv2d_relu(is_qat, conv, relu): return torch.ao.nn.intrinsic.ConvReLU2d(conv, relu) # For quantizing Linear linear_config = BackendPatternConfig(torch.nn.Linear) .set_observation_type(ObservationType.OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT) .add_dtype_config(weighted_int8_dtype_config) .set_root_module(torch.nn.Linear) .set_qat_module(torch.ao.nn.qat.Linear) .set_reference_quantized_module(torch.ao.nn.quantized.reference.Linear) # For fusing Conv2d + ReLU into ConvReLU2d conv_relu_config = BackendPatternConfig((torch.nn.Conv2d, torch.nn.ReLU)) .set_observation_type(ObservationType.OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT) .add_dtype_config(weighted_int8_dtype_config) .set_fused_module(torch.ao.nn.intrinsic.ConvReLU2d) .set_fuser_method(fuse_conv2d_relu) # For quantizing ConvReLU2d fused_conv_relu_config = BackendPatternConfig(torch.ao.nn.intrinsic.ConvReLU2d) .set_observation_type(ObservationType.OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT) .add_dtype_config(weighted_int8_dtype_config) .set_root_module(torch.nn.Conv2d) .set_qat_module(torch.ao.nn.intrinsic.qat.ConvReLU2d) .set_reference_quantized_module(torch.ao.nn.quantized.reference.Conv2d) backend_config = BackendConfig("my_backend") .set_backend_pattern_config(linear_config) .set_backend_pattern_config(conv_relu_config) .set_backend_pattern_config(fused_conv_relu_config)
- property configs: list[torch.ao.quantization.backend_config.backend_config.BackendPatternConfig]#
返回此 BackendConfig 中設定的配置列表的副本。
- classmethod from_dict(backend_config_dict)[source]#
從一個字典建立
BackendConfig,該字典包含以下專案:“name”:目標後端的名稱
“configs”:一個字典列表,每個字典代表一個 BackendPatternConfig
- 返回型別