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”: 以反转嵌套元组格式指定的模式(已弃用)- Return type
- set_fuser_method(fuser_method)[源代码]¶
设置指定如何融合此 BackendPatternConfig 模式的函数。
该函数的第一个参数应为is_qat,其余参数应为元组模式中的项。该函数的返回值应为融合后的模块。
例如,模式 (torch.nn.Linear, torch.nn.ReLU) 的 fuser 方法可以是:
- def fuse_linear_relu(is_qat, linear, relu):
返回 torch.ao.nn.intrinsic.LinearReLU(linear, relu)
对于一个更复杂的例子,请参见 https://gist.github.com/jerryzh168/8bea7180a8ba3c279f2c9b050f2a69a6。
- Return type
- set_observation_type(observation_type)[源代码]¶
设置在此模式下图中的观察者应如何插入。
这里的观察类型指的是观察者(或量化-反量化操作)在图中如何放置。这是用于生成后端所理解的期望参考模式。加权操作(如线性和卷积)需要不同的观察者(或参考模型中传递给量化操作的量化参数)用于输入和输出。
有两种观测类型:
OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT(默认):输出观察者实例将与输入不同。这是最常见的观察类型。
OUTPUT_SHARE_OBSERVER_WITH_INPUT: 输出观察者实例将与输入相同。这对于像cat这样的操作符很有用。
注意:这将在不久的将来被重命名,因为我们很快将插入带有观察者(和假量化器)的QuantDeQuantStubs,而不是观察者本身。
- Return type
- set_pattern(pattern)[源代码]¶
设置要配置的模式。
模式可以是浮点模块、功能运算符、pytorch运算符或上述元素的元组组合。元组模式被视为顺序模式,目前仅支持2个或3个元素的元组。
- Return type
- set_reference_quantized_module(reference_quantized_module)[源代码]¶
设置表示此模式根模块的参考量化实现的模块。
更多详情,请参阅
set_root_module()。- Return type