后端模式配置
- classtorch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[源代码]
-
这是一个配置对象,用于指定特定操作模式下的量化行为。有关详细用法示例,请参见
BackendConfig
。- add_dtype_config(dtype_config)[源代码]
-
在参考模型规范中,为量化操作添加一组支持的数据类型作为参数。
- 返回类型
- classmethodfrom_dict(backend_pattern_config_dict)[源代码]
-
使用包含以下项目的字典来创建一个
BackendPatternConfig
:"pattern": 正在配置的模式
"observation_type": 指定如何插入观察器的类型ObservationType
"dtype_configs": 表示DTypeConfig
的字典列表
"root_module": 此模式的根模块,表示为torch.nn.Module
"qat_module": 表示此模式 QAT 实现的torch.nn.Module
"reference_quantized_module": 此模式根模块的参考量化实现,表示为torch.nn.Module
"fused_module": 表示此模式融合实现的torch.nn.Module
"fuser_method": 指定如何为此模式进行融合的方法
"pattern_complex_format": 以反向嵌套元组格式指定的模式(已弃用)- 返回类型
- set_dtype_configs(dtype_configs)[源代码]
-
将支持的数据类型设置为参考模型规范中量化操作的参数,并覆盖之前注册的所有数据类型。
- 返回类型
- set_fused_module(fused_module)[源代码]
-
设置代表该模式融合实现的模块。
- 返回类型
- set_fuser_method(fuser_method)[源代码]
-
设置用于指定如何融合此BackendPatternConfig模式的函数。
此函数的第一个参数应为is_qat,其余参数依次是元组模式中的各项。该函数的返回值应为融合后的模块。
例如,对于模式(torch.nn.Linear, torch.nn.ReLU),其融合方法可以是:
- 定义融合全连接和ReLU函数fuse_linear_relu,参数包括is_qat、linear和relu:
-
返回 torch.ao.nn.intrinsic.LinearReLU(linear, relu)
对于更复杂的示例,请参阅https://gist.github.com/jerryzh168/8bea7180a8ba3c279f2c9b050f2a69a6。
- 返回类型
- set_observation_type(observation_type)[源代码]
-
设置观察者如何在此模式中的图中插入。
这里的观察类型指的是如何在图中放置观察者(或量化解运算)。这用于生成后端可以理解的期望参考模式。例如,线性运算和卷积运算这样的加权运算,其输入和输出需要不同的观察者(或传递给参考模型中量化运算的不同量化参数)。
有两种观测类型:OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT(默认):输出观察器实例不同于输入观察器。这是最常见的观测类型。
OUTPUT_SHARE_OBSERVER_WITH_INPUT: 输出观察器实例将与输入相同,这在类似cat的操作中非常有用。
注意:该功能将很快被重命名,因为我们将插入带有观察器(和假量化)的QuantDeQuantStubs,而不是直接使用观察器本身。
- 返回类型
- set_pattern(pattern)[源代码]
-
设置要配置的图案模式。
该模式可以是浮点模块、函数运算符、PyTorch 运算符,或者它们的元组组合。元组模式表示顺序模式,当前只支持包含 2 或 3 个元素的元组。
- 返回类型
- set_qat_module(qat_module)[源代码]
-
设置代表该模式QAT实现的模块。
- 返回类型
- set_reference_quantized_module(reference_quantized_module)[源代码]
-
设置代表该模式根模块的参考量化实现的模块。
详情请参见
set_root_module()
。- 返回类型
- set_root_module(root_module)[源代码]
-
设置代表该模式根的模块。
在转换阶段构建参考量化模型时,根模块(例如 torch.nn.Linear 对于 torch.ao.nn.intrinsic.LinearReLU)将被替换为相应的参考量化模块(例如 torch.ao.nn.reference.quantized.Linear)。这允许自定义后端指定与它们的降级操作数值匹配的自定义参考量化模块实现。由于这是一个一对一映射,根模块和参考量化模块必须在同一个 BackendPatternConfig 中同时进行指定,以便完成转换。
- 返回类型
- to_dict()[源代码]
-
将此
BackendPatternConfig
转换为一个字典,其中包含from_dict()
中描述的各项内容。