Spec-Zone.ru › PyTorch 2.14

BackendPatternConfig

class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None) [исходный код]

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

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

Добавляет набор поддерживаемых типов данных, передаваемых в качестве аргументов операциям квантования в спецификации эталонной модели.

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

BackendPatternConfig

classmethod from_dict(backend_pattern_config_dict) [исходный код]

Создаёт BackendPatternConfig из словаря со следующими элементами:

“pattern”: настраиваемый шаблон “observation_type”: ObservationType, определяющий способ вставки наблюдателей для этого шаблона “dtype_configs”: список словарей, представляющих DTypeConfig “root_module”: torch.nn.Module, представляющий корневой модуль этого шаблона “qat_module”: torch.nn.Module, представляющий реализацию QAT для этого шаблона “reference_quantized_module”: torch.nn.Module, представляющий эталонную квантованную реализацию корневого модуля этого шаблона “fused_module”: torch.nn.Module, представляющий объединённую реализацию этого шаблона “fuser_method”: функция, определяющая способ объединения этого шаблона “pattern_complex_format”: шаблон в формате обратного вложенного кортежа (устаревший формат)

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

BackendPatternConfig

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

Задаёт поддерживаемые типы данных, передаваемые в качестве аргументов операциям квантования в спецификации эталонной модели, заменяя все ранее зарегистрированные типы данных.

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

BackendPatternConfig

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

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

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

BackendPatternConfig

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

Задаёт функцию, определяющую способ объединения шаблона этого BackendPatternConfig.

Первым аргументом этой функции должен быть is_qat, а остальными аргументами должны быть элементы кортежа шаблона. Эта функция должна возвращать результирующий объединённый модуль.

Например, метод объединения для шаблона (torch.nn.Linear, torch.nn.ReLU) может выглядеть так:

def fuse_linear_relu(is_qat, linear, relu):

return torch.ao.nn.intrinsic.LinearReLU(linear, relu)

Более сложный пример см. в https://gist.github.com/jerryzh168/8bea7180a8ba3c279f2c9b050f2a69a6.

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

BackendPatternConfig

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

Задаёт способ вставки наблюдателей в граф для этого шаблона.

Тип наблюдения здесь определяет способ размещения наблюдателей (или операций квантования-деквантования) в графе. Это используется для создания желаемых эталонных шаблонов, поддерживаемых бэкендом. Для взвешенных операций, таких как linear и conv, требуются разные наблюдатели (или параметры квантования, передаваемые операциям квантования в эталонной модели) для входа и выхода.

Существует два типа наблюдения:

OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT (по умолчанию): экземпляр наблюдателя на выходе будет отличаться от экземпляра на входе. Это самый распространённый тип наблюдения.

OUTPUT_SHARE_OBSERVER_WITH_INPUT: экземпляр наблюдателя на выходе будет тем же, что и на входе. Это полезно для таких операторов, как cat.

Примечание: в ближайшее время это название будет изменено, поскольку вскоре вместо самих наблюдателей мы будем вставлять QuantDeQuantStubs с подключёнными наблюдателями (и имитацией квантования).

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

BackendPatternConfig

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

Задаёт настраиваемый шаблон.

Шаблоном может быть модуль с плавающей точкой, функциональный оператор, оператор pytorch или кортеж из их комбинаций. Шаблоны-кортежи рассматриваются как последовательные шаблоны; в настоящее время поддерживаются только кортежи из 2 или 3 элементов.

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

BackendPatternConfig

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

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

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

BackendPatternConfig

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

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

Подробнее см. в set_root_module().

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

BackendPatternConfig

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

Задаёт модуль, представляющий корень этого шаблона.

При создании эталонной квантованной модели на этапе преобразования корневые модули (например, torch.nn.Linear для torch.ao.nn.intrinsic.LinearReLU) заменяются соответствующими эталонными квантованными модулями (например, torch.ao.nn.reference.quantized.Linear). Это позволяет пользовательским бэкендам задавать собственные реализации эталонных квантованных модулей, соответствующие численным характеристикам преобразованных операторов. Поскольку это взаимно-однозначное соответствие, для выполнения преобразования корневой модуль и эталонный квантованный модуль должны быть указаны в одном и том же BackendPatternConfig.

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

BackendPatternConfig

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

Преобразует этот BackendPatternConfig в словарь с элементами, описанными в 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.BackendPatternConfig.html

Spec-Zone.ru

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