Shortcuts

BackendPatternConfig

class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[源代码]

配置对象,用于指定给定操作符模式的量化行为。 有关详细的使用示例,请参阅 BackendConfig

add_dtype_config(dtype_config)[源代码]

在参考模型规范中,添加一组作为参数传递给量化操作的支持数据类型。

Return type

后端模式配置

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

BackendPatternConfig

set_dtype_configs(dtype_configs)[源代码]

设置在参考模型规范中作为参数传递给量化操作的支持的数据类型,覆盖所有之前注册的数据类型。

Return type

后端模式配置

set_fused_module(fused_module)[源代码]

设置表示此模式的融合实现的模块。

Return type

BackendPatternConfig

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

BackendPatternConfig

set_observation_type(observation_type)[源代码]

设置在此模式下图中的观察者应如何插入。

这里的观察类型指的是观察者(或量化-反量化操作)在图中如何放置。这是用于生成后端所理解的期望参考模式。加权操作(如线性和卷积)需要不同的观察者(或参考模型中传递给量化操作的量化参数)用于输入和输出。

有两种观测类型:

OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT(默认):输出观察者实例将与输入不同。这是最常见的观察类型。

OUTPUT_SHARE_OBSERVER_WITH_INPUT: 输出观察者实例将与输入相同。这对于像cat这样的操作符很有用。

注意:这将在不久的将来被重命名,因为我们很快将插入带有观察者(和假量化器)的QuantDeQuantStubs,而不是观察者本身。

Return type

BackendPatternConfig

set_pattern(pattern)[源代码]

设置要配置的模式。

模式可以是浮点模块、功能运算符、pytorch运算符或上述元素的元组组合。元组模式被视为顺序模式,目前仅支持2个或3个元素的元组。

Return type

BackendPatternConfig

set_qat_module(qat_module)[源代码]

设置表示此模式的QAT实现的模块。

Return type

BackendPatternConfig

set_reference_quantized_module(reference_quantized_module)[源代码]

设置表示此模式根模块的参考量化实现的模块。

更多详情,请参阅 set_root_module()

Return type

BackendPatternConfig

set_root_module(root_module)[源代码]

设置表示此模式根的模块。

在转换阶段构建参考量化模型时,根模块(例如 torch.nn.Linear 用于 torch.ao.nn.intrinsic.LinearReLU)将被替换为相应的参考量化模块(例如 torch.ao.nn.reference.quantized.Linear)。这允许自定义后端指定自定义参考量化模块实现,以匹配其降低操作的数值。由于这是一对一的映射,根模块和参考量化模块必须在同一个 BackendPatternConfig 中指定,以便进行转换。

Return type

BackendPatternConfig

to_dict()[源代码]

将此 BackendPatternConfig 转换为字典,包含在 from_dict() 中描述的项目。

Return type

字典[字符串, 任意]

优云智算