BackendPatternConfig¶
- class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[源代码]¶
配置对象,用于指定给定算子模式的量化行为。有关详细的示例用法,请参阅
BackendConfig
。- classmethod from_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_fuser_method(fuser_method)[源代码]¶
设置指定如何融合此 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)[源代码]¶
设置如何为此模式在图中插入观察者。
此处观察类型指的是观察者(或量化反量化操作)将在图中如何放置。这用于生成后端理解的所需参考模式。诸如线性运算和卷积运算之类的加权操作需要为输入和输出使用不同的观察者(或传递给参考模型中量化操作的量化参数)。
有两种观察类型
OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT(默认):输出观察者实例将与输入不同。这是最常见的观察类型。
OUTPUT_SHARE_OBSERVER_WITH_INPUT:输出观察者实例将与输入相同。这对于像cat这样的操作符很有用。
注意:这将在不久的将来重命名,因为我们很快将插入带有观察者(和伪量化)的QuantDeQuantStubs,而不是观察者本身。
- 返回类型
- set_pattern(pattern)[source]¶
设置要配置的模式。
模式可以是浮点模块、函数运算符、PyTorch运算符,或上述的元组组合。元组模式被视为顺序模式,目前仅支持 2 或 3 个元素的元组。
- 返回类型
- set_reference_quantized_module(reference_quantized_module)[source]¶
设置代表此模式的根模块的参考量化实现的模块。
有关更多详细信息,请参阅
set_root_module()
。- 返回类型