BackendPatternConfig
-
class torch.ao.quantization.backend_config.BackendPatternConfig(pattern=None)[исходный код] -
Объект конфигурации, задающий поведение квантования для заданного шаблона оператора. Подробный пример использования см. в
BackendConfig.-
add_dtype_config(dtype_config)[исходный код] -
Добавляет набор поддерживаемых типов данных, передаваемых в качестве аргументов операциям квантования в спецификации эталонной модели.
- Тип возвращаемого значения:
-
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”: шаблон в формате обратного вложенного кортежа (устаревший формат)- Тип возвращаемого значения:
-
set_dtype_configs(dtype_configs)[исходный код] -
Задаёт поддерживаемые типы данных, передаваемые в качестве аргументов операциям квантования в спецификации эталонной модели, заменяя все ранее зарегистрированные типы данных.
- Тип возвращаемого значения:
-
set_fused_module(fused_module)[исходный код] -
Задаёт модуль, представляющий объединённую реализацию этого шаблона.
- Тип возвращаемого значения:
-
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.
- Тип возвращаемого значения:
-
set_observation_type(observation_type)[исходный код] -
Задаёт способ вставки наблюдателей в граф для этого шаблона.
Тип наблюдения здесь определяет способ размещения наблюдателей (или операций квантования-деквантования) в графе. Это используется для создания желаемых эталонных шаблонов, поддерживаемых бэкендом. Для взвешенных операций, таких как linear и conv, требуются разные наблюдатели (или параметры квантования, передаваемые операциям квантования в эталонной модели) для входа и выхода.
Существует два типа наблюдения:
OUTPUT_USE_DIFFERENT_OBSERVER_AS_INPUT(по умолчанию): экземпляр наблюдателя на выходе будет отличаться от экземпляра на входе. Это самый распространённый тип наблюдения.OUTPUT_SHARE_OBSERVER_WITH_INPUT: экземпляр наблюдателя на выходе будет тем же, что и на входе. Это полезно для таких операторов, какcat.Примечание: в ближайшее время это название будет изменено, поскольку вскоре вместо самих наблюдателей мы будем вставлять QuantDeQuantStubs с подключёнными наблюдателями (и имитацией квантования).
- Тип возвращаемого значения:
-
set_pattern(pattern)[исходный код] -
Задаёт настраиваемый шаблон.
Шаблоном может быть модуль с плавающей точкой, функциональный оператор, оператор pytorch или кортеж из их комбинаций. Шаблоны-кортежи рассматриваются как последовательные шаблоны; в настоящее время поддерживаются только кортежи из 2 или 3 элементов.
- Тип возвращаемого значения:
-
set_qat_module(qat_module)[исходный код] -
Задаёт модуль, представляющий реализацию QAT для этого шаблона.
- Тип возвращаемого значения:
-
set_reference_quantized_module(reference_quantized_module)[исходный код] -
Задаёт модуль, представляющий эталонную квантованную реализацию корневого модуля этого шаблона.
Подробнее см. в
set_root_module().- Тип возвращаемого значения:
-
set_root_module(root_module)[исходный код] -
Задаёт модуль, представляющий корень этого шаблона.
При создании эталонной квантованной модели на этапе преобразования корневые модули (например, torch.nn.Linear для torch.ao.nn.intrinsic.LinearReLU) заменяются соответствующими эталонными квантованными модулями (например, torch.ao.nn.reference.quantized.Linear). Это позволяет пользовательским бэкендам задавать собственные реализации эталонных квантованных модулей, соответствующие численным характеристикам преобразованных операторов. Поскольку это взаимно-однозначное соответствие, для выполнения преобразования корневой модуль и эталонный квантованный модуль должны быть указаны в одном и том же BackendPatternConfig.
- Тип возвращаемого значения:
-
to_dict()[исходный код] -
Преобразует этот
BackendPatternConfigв словарь с элементами, описанными в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.BackendPatternConfig.html