后端配置
- 类torch.ao.quantization.backend_config.BackendConfig(name='')[源代码]
-
定义在特定后端上可进行量化的模式集合,以及如何根据这些模式生成参考量化模型的配置。
在此上下文中,模式可以是一个模块、一个函数式、一个算子或上述内容的有向无环图。每个在目标后端支持的模式都可以通过
BackendPatternConfig
进行单独配置,具体如下:-
支持的输入/输出激活函数、权重和偏置的数据类型
-
观察者和量化/去量化的操作是如何插入的,以构建参考模式,
-
(可选)融合、量化感知训练(QAT)以及参考模块映射。
有关模式格式的详细描述,请参阅:https://github.com/pytorch/pytorch/blob/master/torch/ao/quantization/backend_config/README.md
示例用法:
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)
- propertyconfigs:List[BackendPatternConfig]
-
返回此BackendConfig中设置的配置列表的副本。
- classmethodfrom_dict(backend_config_dict)[源代码]
-
使用包含以下项目的字典来创建一个
BackendConfig
:"name": 目标后端的名称
"configs": 一个包含多个 BackendPatternConfig 的字典列表
- 返回类型
- set_backend_pattern_config(config)[源代码]
-
为可在目标后端运行的模式设置配置,这会覆盖该模式现有的任何配置。
- 返回类型
- set_backend_pattern_configs(configs)[源代码]
-
为可以在目标后端运行的模式设置配置。如果有模式已提前注册,将会覆盖其原有的配置。
- 返回类型
- set_name(name)[源代码]
-
设置目标后端的名称。
- 返回类型
- to_dict()[源代码]
-
将此
BackendConfig
转换为一个字典,转换规则参见from_dict()
中的内容。
-