后端模式配置 ¶
- 类 torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[source][source] ¶
指定给定操作符模式的量化行为的配置对象。有关详细使用示例,请参阅
BackendConfig
。- 添加数据类型配置(dtype_config)[源代码][源代码] ¶
在参考模型规范中添加一组作为参数传递的支持数据类型,用于量化操作。
- 返回类型:
- 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_fused_module(fused_module)[source][source]
设置表示此模式融合实现的模块。
- 返回类型:
- set_fuser_method(fuser_method)[source][source]¶
设置指定如何融合此后端模式配置模式的函数。
此函数的第一个参数应为 is_qat,其余参数应为模式元组的元素。此函数的返回值应为融合后的模块。
例如,对于模式(torch.nn.Linear, torch.nn.ReLU)的 fuser 方法可以是:
- 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 个元素的元组。
- 返回类型:
- 设置表示此模式根模块的参考量化实现的模块[source][source] ¶
设置此模式根模块的参考量化实现的模块。
更多详情,请参阅
set_root_module()
。- 返回类型: