BackendPatternConfig¶
- class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[source][source]¶
配置对象,指定给定算子模式的量化行为。有关详细的用法示例,请参阅
BackendConfig
。- classmethod from_dict(backend_pattern_config_dict)[source][source]¶
从具有以下项的字典创建
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_fuser_method(fuser_method)[source][source]¶
设置指定如何融合此 BackendPatternConfig 模式的函数。
此函数的第一个参数应为 is_qat,其余参数应为元组模式中的项。此函数的返回值应为生成的融合模块。
例如,模式 (torch.nn.Linear, torch.nn.ReLU) 的融合方法可以是
- def fuse_linear_relu(is_qat, linear, relu)
return torch.ao.nn.intrinsic.LinearReLU(linear, relu)
有关更复杂的示例,请参阅 https://gist.github.com/jerryzh168/8bea7180a8ba3c279f2c9b050f2a69a6。
- 返回类型
- set_observation_type(observation_type)[source][source]¶
设置应如何在此模式的图中插入观察者。
此处的观察类型指的是观察者(或量化-反量化算子)在图中的放置方式。这用于生成后端理解的所需参考模式。诸如线性层和卷积层之类的加权算子对于输入和输出需要不同的观察者(或传递给参考模型中量化算子的量化参数)。
有两种观察类型
OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT (默认): 输出观察者实例将与输入不同。这是最常见的观察类型。
OUTPUT_SHARE_OBSERVER_WITH_INPUT: 输出观察者实例将与输入相同。这对于像 cat 这样的算子很有用。
注意:这将在不久的将来重命名,因为我们很快将插入带有附加观察者(和伪量化)的 QuantDequantStubs,而不是观察者本身。
- 返回类型
- set_pattern(pattern)[source][source]¶
设置要配置的模式。
该模式可以是浮点模块、函数式算子、PyTorch 算子或上述的元组组合。元组模式被视为顺序模式,目前仅支持 2 个或 3 个元素的元组。
- 返回类型
- set_reference_quantized_module(reference_quantized_module)[source][source]¶
设置表示此模式根模块的参考量化实现的模块。
有关更多详细信息,请参阅
set_root_module()
。- 返回类型