Spec-Zone.ru › PyTorch 2.14

BackendConfig

class torch.ao.quantization.backend_config.BackendConfig(name='') [исходный код]

Конфигурация, определяющая набор шаблонов, которые можно квантовать на заданном бэкенде, а также способ создания эталонных квантованных моделей на основе этих шаблонов.

В данном контексте шаблон — это модуль, функциональная операция, оператор или направленный ациклический граф из перечисленных выше элементов. Каждый шаблон, поддерживаемый целевым бэкендом, можно настроить отдельно с помощью BackendPatternConfig в отношении:

  1. поддерживаемых типов данных входных и выходных активаций, весов и смещений;
  2. способа вставки наблюдателей и операций квантования/деквантования для создания эталонного шаблона;
  3. (необязательно) соответствий для слияния, 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

Тип возвращаемого значения:

BackendConfig

set_backend_pattern_config(config) [исходный код]

Задает конфигурацию для шаблона, который можно выполнять на целевом бэкенде. Она заменяет любую существующую конфигурацию для указанного шаблона.

Тип возвращаемого значения:

BackendConfig

set_backend_pattern_configs(configs) [исходный код]

Задает конфигурации для шаблонов, которые можно выполнять на целевом бэкенде. Если конфигурация для шаблона уже была зарегистрирована, она будет заменена.

Тип возвращаемого значения:

BackendConfig

set_name(name) [исходный код]

Задает имя целевого бэкенда.

Тип возвращаемого значения:

BackendConfig

to_dict() [исходный код]

Преобразует этот BackendConfig в словарь с элементами, описанными в from_dict().

Тип возвращаемого значения:

dict[str, Any]

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API