• 文档 >
  • 量化 >
  • 量化 API 参考 >
  • 后端配置
快捷键

后端配置 ¶

class torch.ao.quantization.backend_config.BackendConfig(name='')[source][source]

定义了可以在给定后端上量化的模式集合,以及如何从这些模式生成参考量化模型。

在此上下文中,模式指的是一个模块、一个函数、一个运算符或上述内容的有向无环图。目标后端支持的每个模式都可以通过 BackendPatternConfig 进行单独配置,具体包括:

  1. 支持的输入/输出激活、权重和偏置数据类型

  2. 如何插入观察者和量化/反量化运算符以构建参考模式,

  3. (可选)融合、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)
属性配置 configslist[torch.ao.quantization.backend_config.backend_config.BackendPatternConfig] ¶

返回在此 BackendConfig 中设置的配置列表的副本。

类方法 from_dict(backend_config_dict)[source][source] ¶

从以下条目创建一个 BackendConfig

“name”:目标后端的名称

“configs”:表示每个 BackendPatternConfig 的字典列表

返回类型:

后端配置

set_backend_pattern_config(config)[source][source]

设置可以在目标后端运行的模式的配置。这将覆盖给定模式现有的任何配置。

返回类型:

后端配置

set_backend_pattern_configs(configs)[source][source]

设置目标后端上可运行的模式的配置。如果该模式之前已注册,则此操作将覆盖任何现有配置。

返回类型:

后端配置

set_name(name)[source][source]

设置目标后端的名称。

返回类型:

后端配置

to_dict()[source][source]

将此 BackendConfig 转换为包含 from_dict() 描述项的字典。

返回类型:

dict[str, Any]


© 版权所有 PyTorch 贡献者。

使用 Sphinx 构建,主题由 Read the Docs 提供。

文档

查看 PyTorch 的全面开发者文档

查看文档

教程

深入了解初学者和高级开发者的教程

查看教程

资源

查找开发资源并获得您的疑问解答

查看资源