BackendConfig
-
class torch.ao.quantization.backend_config.BackendConfig(name='')[исходный код] -
Конфигурация, определяющая набор шаблонов, которые можно квантовать на заданном бэкенде, а также способ создания эталонных квантованных моделей на основе этих шаблонов.
В данном контексте шаблон — это модуль, функциональная операция, оператор или направленный ациклический граф из перечисленных выше элементов. Каждый шаблон, поддерживаемый целевым бэкендом, можно настроить отдельно с помощью
BackendPatternConfigв отношении:- поддерживаемых типов данных входных и выходных активаций, весов и смещений;
- способа вставки наблюдателей и операций квантования/деквантования для создания эталонного шаблона;
- (необязательно) соответствий для слияния, QAT и эталонных модулей.
Формат шаблонов описан в: pytorch/pytorch
Пример использования:
import torch from torch.ao.quantization.backend_config import ( BackendConfig, BackendPatternConfig, DTypeConfig, ObservationType, ) weighted_int8_dtype_config = DTypeConfig( input_dtype=torch.quint8, output_dtype=torch.quint8, weight_dtype=torch.qint8, bias_dtype=torch.float) def fuse_conv2d_relu(is_qat, conv, relu): return torch.ao.nn.intrinsic.ConvReLU2d(conv, relu) # For quantizing Linear linear_config = BackendPatternConfig(torch.nn.Linear) .set_observation_type(ObservationType.OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT) .add_dtype_config(weighted_int8_dtype_config) .set_root_module(torch.nn.Linear) .set_qat_module(torch.ao.nn.qat.Linear) .set_reference_quantized_module(torch.ao.nn.quantized.reference.Linear) # For fusing Conv2d + ReLU into ConvReLU2d conv_relu_config = BackendPatternConfig((torch.nn.Conv2d, torch.nn.ReLU)) .set_observation_type(ObservationType.OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT) .add_dtype_config(weighted_int8_dtype_config) .set_fused_module(torch.ao.nn.intrinsic.ConvReLU2d) .set_fuser_method(fuse_conv2d_relu) # For quantizing ConvReLU2d fused_conv_relu_config = BackendPatternConfig(torch.ao.nn.intrinsic.ConvReLU2d) .set_observation_type(ObservationType.OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT) .add_dtype_config(weighted_int8_dtype_config) .set_root_module(torch.nn.Conv2d) .set_qat_module(torch.ao.nn.intrinsic.qat.ConvReLU2d) .set_reference_quantized_module(torch.ao.nn.quantized.reference.Conv2d) backend_config = BackendConfig("my_backend") .set_backend_pattern_config(linear_config) .set_backend_pattern_config(conv_relu_config) .set_backend_pattern_config(fused_conv_relu_config)-
property configs: list[BackendPatternConfig] -
Возвращает копию списка конфигураций, заданных в этом
BackendConfig.
-
classmethod from_dict(backend_config_dict)[исходный код] -
Создает
BackendConfigиз словаря со следующими элементами:«name»: имя целевого бэкенда
«configs»: список словарей, каждый из которых представляет собой
BackendPatternConfig- Тип возвращаемого значения:
-
set_backend_pattern_config(config)[исходный код] -
Задает конфигурацию для шаблона, который можно выполнять на целевом бэкенде. Она заменяет любую существующую конфигурацию для указанного шаблона.
- Тип возвращаемого значения:
-
set_backend_pattern_configs(configs)[исходный код] -
Задает конфигурации для шаблонов, которые можно выполнять на целевом бэкенде. Если конфигурация для шаблона уже была зарегистрирована, она будет заменена.
- Тип возвращаемого значения:
-
set_name(name)[исходный код] -
Задает имя целевого бэкенда.
- Тип возвращаемого значения:
-
to_dict()[исходный код] -
Преобразует этот
BackendConfigв словарь с элементами, описанными вfrom_dict().
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.ao.quantization.backend_config.BackendConfig.html