Справочник API квантования
Создано: 25 июля 2020 г. | Последнее обновление: 11 мая 2026 г.
torch.ao.quantization
Этот модуль содержит API квантования в eager-режиме.
API верхнего уровня
quantize
| Квантует входную вещественную модель с помощью статического квантования после обучения. |
quantize_dynamic
| Преобразует вещественную модель в динамически квантованную модель (то есть модель только с квантованными весами). |
quantize_qat
| Выполняет обучение с учетом квантования и создает квантованную модель |
prepare
| Подготавливает копию модели к калибровке квантования или обучению с учетом квантования. |
prepare_qat
| Подготавливает копию модели к калибровке квантования или обучению с учетом квантования и преобразует ее в квантованную версию. |
convert
| Преобразует подмодули входного модуля в модули другого типа согласно |
Подготовка модели к квантованию
Объединяет список модулей в один модуль. | |
QuantStub
| Вспомогательный модуль квантования. До калибровки он эквивалентен наблюдателю; в |
DeQuantStub
| Вспомогательный модуль деквантования. До калибровки он эквивалентен тождественному преобразованию; в |
QuantWrapper
| Класс-обертка, который оборачивает входной модуль, добавляет QuantStub и DeQuantStub и окружает вызов модуля вызовами модулей квантования и деквантования. |
add_quant_dequant
| Оборачивает конечный дочерний модуль в QuantWrapper, если у него есть допустимый qconfig. Обратите внимание: эта функция изменяет дочерние элементы модуля на месте и также может вернуть новый модуль, который оборачивает входной модуль. |
Вспомогательные функции
ObserverOrFakeQuantize
| Создает именованные параметризованные псевдонимы типов. |
swap_module
| Заменяет модуль, если для него существует квантованный аналог и к нему прикреплен |
propagate_qconfig_
| Распространяет qconfig по иерархии модулей и назначает атрибут |
default_eval_fn
| Определяет функцию оценки по умолчанию. |
torch.ao.quantization.utils
Вспомогательные функции, общие для разных режимов квантования (eager/graph)
activation_is_dynamically_quantized
| По заданному qconfig определяет, нужно ли динамически квантовать активацию; сюда входит динамическое квантование в quint8, qint8 и float16 |
activation_is_int32_quantized
| По заданному qconfig определяет, нужно ли квантовать активацию в int32 |
activation_is_int8_quantized
| По заданному qconfig определяет, нужно ли квантовать активацию в int8; сюда входит квантование в quint8 и qint8 |
activation_is_statically_quantized
| По заданному qconfig определяет, нужно ли квантовать активацию; сюда входит квантование в quint8, qint8, qint32 и float16 |
calculate_qmin_qmax
| Вычисляет фактические qmin и qmax на основе диапазона квантования, типа данных наблюдателя и того, уменьшен ли диапазон. |
check_min_max_valid
| Проверяет, допустимы ли заданные минимальное и максимальное значения: существуют ли они и меньше ли минимальное значение максимального. |
determine_qparams
| Вычисляет параметры квантования по тензорам минимальных и максимальных значений. |
get_combined_dict
| Объединяет два словаря. |
get_fqn_to_example_inputs
| По модели и ее примерам входных данных возвращает словарь, сопоставляющий полные имена подмодулей с example_inputs для соответствующего подмодуля, например |
get_qconfig_dtypes
| Возвращает кортеж qconfig для qconfig: (activation_dtype, weight_dtype, activation_is_dynamic) |
get_qparam_dict
| |
get_quant_type
| |
get_swapped_custom_module_class
| Получает класс наблюдаемого/квантованного пользовательского модуля, на который нужно заменить |
getattr_from_fqn
| Для объекта obj и полного имени fqn, например "foo.bar.baz", возвращает gm.foo.bar.baz. |
NodePattern
| Создает именованные параметризованные псевдонимы типов. |
Pattern
| Создает именованные параметризованные псевдонимы типов. |
validate_qmin_qmax
| Проверяет, правильно ли инициализирован заданный пользователем диапазон квантования и находится ли он в пределах, поддерживаемых типом данных наблюдателя. |
torch.ao.quantization.quantize_fx
Этот модуль содержит API квантования в графовом режиме FX (прототип).
-
torch.ao.quantization.quantize_fx.attach_preserved_attrs_to_model(model, preserved_attrs)[исходный код] -
Сохраняет атрибуты в model.meta, чтобы они сохранились при глубоком копировании
-
torch.ao.quantization.quantize_fx.convert_to_reference_fx(graph_module, convert_custom_config=None, _remove_qconfig=True, qconfig_mapping=None, backend_config=None)[исходный код] -
Преобразует откалиброванную или обученную модель в эталонную квантованную модель. Подробнее см. pytorch/rfcs. Эталонная квантованная модель — это стандартное представление квантованной модели, предоставляемое квантованием в графовом режиме FX; ее можно дополнительно преобразовать для выполнения на целевом оборудовании, например на ускорителях
- Параметры:
-
- graph_module (*) – Подготовленная и откалиброванная/обученная модель (GraphModule)
-
convert_custom_config (*) – Пользовательские настройки для функции преобразования. Подробнее см.
convert_fx(). - _remove_qconfig (*) – Опция удаления атрибутов qconfig из модели после преобразования.
-
qconfig_mapping (*) –
- Настройки, определяющие, как преобразовать модель для квантования.
-
Подробнее см.
convert_fx().
-
-
backend_config (BackendConfig): A configuration for the backend which describes how -
Операторы следует квантовать в бэкенде. Подробнее см.
convert_fx().
-
- Возвращает:
-
Эталонную квантованную модель (GraphModule)
- Тип возвращаемого значения:
Пример:
# prepared_model: the model after prepare_fx/prepare_qat_fx and calibration/training # TODO: add backend_config after we split the backend_config for fbgemm and qnnpack # e.g. backend_config = get_default_backend_config("fbgemm") reference_quantized_model = convert_to_reference_fx(prepared_model)
prepare_fx
| Подготавливает модель к квантованию после обучения |
prepare_qat_fx
| Подготавливает модель к обучению с учетом квантования |
convert_fx
| Преобразует откалиброванную или обученную модель в квантованную модель |
fuse_fx
| Объединяет модули, например conv+bn, conv+bn+relu и т. д.; модель должна находиться в режиме eval. |
torch.ao.quantization.qconfig_mapping
Этот модуль содержит QConfigMapping для настройки квантования в графовом режиме FX.
QConfigMapping
| Сопоставление операций модели с |
get_default_qconfig_mapping
| Возвращает QConfigMapping по умолчанию для квантования после обучения. |
get_default_qat_qconfig_mapping
| Возвращает QConfigMapping по умолчанию для обучения с учетом квантования. |
torch.ao.quantization.backend_config
Этот модуль содержит BackendConfig — объект конфигурации, определяющий поддержку квантования в бэкенде. Сейчас он используется только для квантования в графовом режиме FX, но в будущем мы можем также адаптировать к нему квантование в eager-режиме.
BackendConfig
| Конфигурация, определяющая набор шаблонов, которые можно квантовать в заданном бэкенде, а также способ создания эталонных квантованных моделей на основе этих шаблонов. |
BackendPatternConfig
| Объект конфигурации, задающий поведение квантования для заданного шаблона операторов. |
DTypeConfig
| Объект конфигурации, задающий поддерживаемые типы данных, передаваемые в качестве аргументов операциям квантования в спецификации эталонной модели, для входных и выходных активаций, весов и смещений. |
DTypeWithConstraints
| Конфигурация для задания дополнительных ограничений для определенного типа данных, таких как диапазоны значений квантования, диапазоны значений масштаба и фиксированные параметры квантования, используемая в |
ObservationType
| Перечисление, представляющее различные способы наблюдения за оператором или шаблоном операторов |
-
torch.ao.quantization.backend_config.executorch.get_executorch_backend_config()[исходный код] -
Возвращает
BackendConfigдля бэкендов, на которые PyTorch преобразует модели с помощью стека Executorch.- Тип возвращаемого значения:
- BackendConfig
-
torch.ao.quantization.backend_config.fbgemm.get_fbgemm_backend_config()[исходный код] -
Возвращает
BackendConfigдля собственного бэкенда FBGEMM в PyTorch.- Тип возвращаемого значения:
- BackendConfig
-
torch.ao.quantization.backend_config.onednn.get_onednn_backend_config()[исходный код] -
Возвращает
BackendConfigдля собственного бэкенда ONEDNN в PyTorch.- Тип возвращаемого значения:
- BackendConfig
torch.ao.quantization.backend_config.utils
entry_to_pretty_str
| По записи backend_config_dict возвращает строку с ее человекочитаемым представлением. |
get_fused_module_classes
| |
get_fuser_method_mapping
| |
get_fusion_pattern_to_extra_inputs_getter
| Получает отображение шаблонов объединения в функции, которые возвращают дополнительные входные узлы из шаблона в порядке, требуемом корневым узлом. |
get_fusion_pattern_to_root_node_getter
| Получает отображение шаблонов объединения в функции, которые возвращают корневой узел шаблона; например, наиболее распространенный шаблон выглядит так::. |
get_module_to_qat_module
| |
get_pattern_to_dtype_configs
| |
get_pattern_to_input_type_to_index
| |
get_qat_module_classes
| |
get_root_module_to_quantized_reference_module
| |
pattern_to_human_readable
| |
remove_boolean_dispatch_from_name
| Для некоторых операций стандартное строковое представление имеет вид '<function boolean_dispatch.<locals>.fn at 0x7ff1106bf280>'; эта функция заменяет их на жестко заданные имена функций. |
torch.ao.quantization.fx.custom_config
Этот модуль содержит несколько классов CustomConfig, используемых как в eager-режиме, так и в графовом режиме FX при квантовании
FuseCustomConfig
| Пользовательская конфигурация для |
PrepareCustomConfig
| Пользовательская конфигурация для |
ConvertCustomConfig
| Пользовательская конфигурация для |
StandaloneModuleConfigEntry
|
torch.ao.quantization.fx.graph_module
QuantizedGraphModule
| Этот класс создан для того, чтобы PackedParams (например, LinearPackedParams, Conv2dPackedParams) появлялись в state_dict, что позволяет сериализовать и десериализовать квантованный модуль графа с помощью torch.save(m.state_dict()) и m.load_state_dict(state_dict). |
torch.ao.quantization.fx.utils
all_node_args_except_first
| Возвращает индексы всех аргументов узла, кроме первого |
all_node_args_have_no_tensors
| Если достоверно известно, что аргументы этого узла не содержат тензоров (являются примитивами), возвращает True. |
assert_and_get_unique_device
| Возвращает единственное устройство для модуля или None, если устройство не найдено. |
collect_producer_nodes
| Начиная с целевого узла, выполняет обратный обход до входного узла или узла getattr. Это используется для извлечения цепочки операторов от getattr до целевого узла, например::. |
create_getattr_from_value
| Для значения любого типа создает соответствующий этому значению узел getattr и регистрирует значение в модуле как буфер. |
create_node_from_old_node_preserve_meta
| Создает |
get_custom_module_class_keys
| Получает все уникальные ключи пользовательских модулей из словаря пользовательской конфигурации. |
get_linear_prepack_op_for_dtype
| |
get_new_attr_name_with_prefix
| |
get_non_observable_arg_indexes_and_types
| Возвращает словарь, в котором типы тензоров с нетипом float являются ключами, а значения соответствуют функции для получения списка (принимающей узел в качестве аргумента) |
get_qconv_prepack_op
| |
get_skipped_module_name_and_classes
| |
graph_module_from_producer_nodes
| Создает модуль графа из извлеченных узлов-производителей функции |
maybe_get_next_module
| Получает следующий модуль, соответствующий требованиям is_target_module_type, если такой существует |
node_arg_is_bias
| Возвращает, является ли аргумент узла смещением |
node_arg_is_weight
| Возвращает, является ли аргумент узла весом |
NodeInfo
| |
return_arg_list
| Создает функцию, которая принимает узел в качестве аргумента и возвращает индексы аргументов, допустимые для node.args |
torch.ao.quantization.observer
Этот модуль содержит наблюдатели, используемые для сбора статистики значений во время калибровки (PTQ) или обучения (QAT).
ObserverBase
| Базовый модуль наблюдателя. |
MinMaxObserver
| Модуль наблюдателя для вычисления параметров квантования на основе текущих минимального и максимального значений. |
MovingAverageMinMaxObserver
| Модуль наблюдателя для вычисления параметров квантования на основе скользящего среднего минимальных и максимальных значений. |
PerChannelMinMaxObserver
| Модуль наблюдателя для вычисления параметров квантования на основе текущих поканальных минимальных и максимальных значений. |
MovingAveragePerChannelMinMaxObserver
| Модуль наблюдателя для вычисления параметров квантования на основе текущих поканальных минимальных и максимальных значений. |
HistogramObserver
| Модуль записывает текущую гистограмму значений тензора вместе с минимальными и максимальными значениями. |
PlaceholderObserver
| Наблюдатель, который ничего не делает и только передает свою конфигурацию в |
RecordingObserver
| Этот модуль предназначен главным образом для отладки и записывает значения тензора во время выполнения. |
NoopObserver
| Наблюдатель, который ничего не делает и только передает свою конфигурацию в |
get_observer_state_dict
| Возвращает словарь состояния, соответствующий статистике наблюдателя. |
load_observer_state_dict
| Принимает модель и state_dict со статистикой наблюдателей модели и загружает эту статистику обратно в модель. |
default_affine_fixed_qparams_observer
| Наблюдатели по умолчанию для операций с фиксированными параметрами квантования. |
default_observer
| Наблюдатель по умолчанию для статического квантования, обычно используемый для отладки. |
default_placeholder_observer
| Наблюдатель-заполнитель по умолчанию, обычно используемый для квантования в torch.float16. |
default_debug_observer
| Наблюдатель по умолчанию, используемый только для отладки. |
default_weight_observer
| Наблюдатель весов по умолчанию. |
default_histogram_observer
| Наблюдатель гистограммы по умолчанию, обычно используемый для PTQ. |
default_per_channel_weight_observer
| Поканальный наблюдатель весов по умолчанию, обычно используемый для бэкендов, поддерживающих поканальное квантование весов, например |
default_dynamic_quant_observer
| Наблюдатель по умолчанию для динамического квантования. |
default_fixed_qparams_range_0to1_observer
| |
default_fixed_qparams_range_neg1to1_observer
| |
default_float_qparams_observer
| Наблюдатель по умолчанию для нулевой точки с плавающей точкой. |
default_float_qparams_observer_4bit
| Наблюдатель по умолчанию для нулевой точки с плавающей точкой и 4-битных активаций. |
default_symmetric_fixed_qparams_observer
| |
per_channel_weight_observer_range_neg_127_to_127
| Поканальный симметричный наблюдатель весов, ограничивающий 8-битные значения диапазоном [-127, +127], исключая -128. |
weight_observer_range_neg_127_to_127
| Симметричный наблюдатель весов, ограничивающий 8-битные значения диапазоном [-127, +127], исключая -128. |
AffineQuantizedObserverBase
| Модуль наблюдателя для аффинного квантования (pytorch/ao) |
Granularity
| Базовый класс для представления гранулярности квантования. |
MappingType
| Способ отображения числа с плавающей точкой в целое число |
PerAxis
| Представляет покоординатную гранулярность квантования. |
PerBlock
| Представляет гранулярность квантования по блокам. |
PerGroup
| Представляет гранулярность квантования по группам каналов. |
PerRow
| Представляет построчную гранулярность квантования. |
PerTensor
| Представляет гранулярность квантования по тензору. |
PerToken
| Представляет гранулярность квантования по токенам. |
TorchAODType
| Заполнитель для типов данных, которые пока не существуют в ядре PyTorch. |
ZeroPointDomain
| Перечисление, указывающее, находится ли zero_point в целочисленной области или в области чисел с плавающей точкой |
get_block_size
| Получает размер блока на основе входной формы и типа гранулярности. |
torch.ao.quantization.fake_quantize
Этот модуль реализует модули, используемые для выполнения фиктивного квантования во время QAT.
FakeQuantizeBase
| Базовый модуль фиктивного квантования. |
FakeQuantize
| Имитирует операции квантования и обратного квантования во время обучения. |
FixedQParamsFakeQuantize
| Имитирует квантование и обратное квантование во время обучения. |
FusedMovingAvgObsFakeQuantize
| Определяет объединённый модуль для наблюдения за тензором. |
default_affine_fixed_qparams_fake_quant
| |
default_dynamic_fake_quant
| Фиктивное динамическое квантование активаций по умолчанию. |
default_embedding_fake_quant
| Фиктивное квантование эмбеддингов по умолчанию. |
default_embedding_fake_quant_4bit
| |
default_fake_quant
| Фиктивное квантование активаций по умолчанию. |
default_fixed_qparams_range_0to1_fake_quant
| |
default_fixed_qparams_range_neg1to1_fake_quant
| |
default_fused_act_fake_quant
| Объединённая версия |
default_fused_per_channel_wt_fake_quant
| Объединённая версия |
default_fused_wt_fake_quant
| Объединённая версия |
default_histogram_fake_quant
| Фиктивное квантование активаций с использованием гистограммы. |
default_per_channel_weight_fake_quant
| Фиктивное квантование весов по каналам по умолчанию. |
default_symmetric_fixed_qparams_fake_quant
| |
default_weight_fake_quant
| Фиктивное квантование весов по умолчанию. |
disable_fake_quant
| Отключает фиктивное квантование для модуля. |
disable_observer
| Отключает наблюдение для этого модуля. |
enable_fake_quant
| Включает фиктивное квантование для модуля. |
enable_observer
| Включает наблюдение для этого модуля. |
fused_per_channel_wt_fake_quant_range_neg_127_to_127
| Объединённая версия |
fused_wt_fake_quant_range_neg_127_to_127
| Объединённая версия |
torch.ao.quantization.qconfig
Этот модуль определяет объекты QConfig, используемые для настройки параметров квантования отдельных операций.
-
torch.ao.quantization.qconfig.get_default_qat_qconfig(backend='x86', version=1)[исходный код] -
Возвращает конфигурацию qconfig для QAT по умолчанию для указанной серверной платформы.
- Параметры:
-
-
backend (*) – строка, представляющая целевую серверную платформу. В настоящее время поддерживаются
x86(по умолчанию),fbgemm,qnnpackиonednn. -
version (*) – версия для обеспечения обратной совместимости. Может быть
Noneили1.
-
backend (*) – строка, представляющая целевую серверную платформу. В настоящее время поддерживаются
- Возвращает:
-
qconfig
-
torch.ao.quantization.qconfig.get_default_qconfig(backend='x86', version=0)[исходный код] -
Возвращает конфигурацию qconfig для PTQ по умолчанию для указанной серверной платформы.
- Параметры:
-
backend (*) – строка, представляющая целевую серверную платформу. В настоящее время поддерживаются
x86(по умолчанию),fbgemm,qnnpackиonednn. - Возвращает:
-
qconfig
-
torch.ao.quantization.qconfig.qconfig_equals(q1, q2)[исходный код] -
Возвращает
True, еслиq1равноq2, иFalseв противном случае.
QConfig
| Описывает способ квантования слоя или части сети, задавая параметры (классы наблюдателей) для активаций и весов соответственно. |
QConfigAny
| Создаёт именованные параметризованные псевдонимы типов. |
default_qconfig
| Конфигурация qconfig по умолчанию. |
default_debug_qconfig
| Конфигурация qconfig по умолчанию для отладки. |
default_per_channel_qconfig
| Конфигурация qconfig по умолчанию для поканального квантования весов. |
default_dynamic_qconfig
| Конфигурация динамического qconfig по умолчанию. |
float16_dynamic_qconfig
| Динамическая конфигурация qconfig с весами, квантованными до |
float16_static_qconfig
| Динамическая конфигурация qconfig, в которой и активации, и веса квантованы до |
per_channel_dynamic_qconfig
| Динамическая конфигурация qconfig с поканальным квантованием весов. |
float_qparams_weight_only_qconfig
| Динамическая конфигурация qconfig, в которой веса квантованы с плавающей точкой zero_point. |
default_qat_qconfig
| Конфигурация qconfig по умолчанию для QAT. |
default_weight_only_qconfig
| Конфигурация qconfig по умолчанию для квантования только весов. |
default_activation_only_qconfig
| Конфигурация qconfig по умолчанию для квантования только активаций. |
default_qat_qconfig_v2
| Объединённая версия |
torch.ao.quantization.quantization_mappings
get_default_compare_output_module_list
| Получить список типов классов модулей, выходные данные которых будут записываться в числовом наборе инструментов. |
get_default_dynamic_quant_module_mappings
| Получить сопоставление модулей для динамического квантования после обучения. |
get_default_dynamic_sparse_quant_module_mappings
| Получить сопоставление модулей для динамического разреженного квантования после обучения. |
get_default_float_to_quantized_operator_mappings
| |
get_default_qat_module_mappings
| Получить сопоставление модулей по умолчанию для обучения с учётом квантования. |
get_default_qconfig_propagation_list
| Получить список типов модулей по умолчанию, которым будет присвоен атрибут qconfig во время подготовки. |
get_default_static_quant_module_mappings
| Получить сопоставление модулей для статического квантования после обучения. |
get_default_static_quant_reference_module_mappings
| Получить сопоставление эталонных модулей для статического квантования после обучения. |
get_default_static_sparse_quant_module_mappings
| Получить сопоставление модулей для статического разреженного квантования после обучения. |
get_dynamic_quant_module_class
| Получить класс динамически квантованного модуля, соответствующий классу модуля с плавающей точкой. |
get_embedding_qat_module_mappings
| Получить сопоставление модулей для обучения с учётом квантования. Оно включает значения по умолчанию и позволяет включить QAT для эмбеддингов. |
get_embedding_static_quant_module_mappings
| Получить сопоставление модулей, включающее сопоставление для QAT эмбеддингов. |
get_quantized_operator
| Получить квантованный оператор, соответствующий оператору с плавающей точкой. |
get_static_quant_module_class
| Получить класс статически квантованного модуля, соответствующий классу модуля с плавающей точкой. |
no_observer_set
| Для этих модулей наблюдатели не могут быть вставлены по умолчанию. |
torch.ao.nn.intrinsic
Этот модуль реализует комбинированные (объединённые) модули conv + relu, которые впоследствии можно квантовать.
ConvReLU1d
| Это последовательный контейнер, вызывающий модули Conv1d и ReLU. |
ConvReLU2d
| Это последовательный контейнер, вызывающий модули Conv2d и ReLU. |
ConvReLU3d
| Это последовательный контейнер, вызывающий модули Conv3d и ReLU. |
LinearReLU
| Это последовательный контейнер, вызывающий модули Linear и ReLU. |
ConvBn1d
| Это последовательный контейнер, вызывающий модули Conv 1d и Batch Norm 1d. |
ConvBn2d
| Это последовательный контейнер, вызывающий модули Conv 2d и Batch Norm 2d. |
ConvBn3d
| Это последовательный контейнер, вызывающий модули Conv 3d и Batch Norm 3d. |
ConvBnReLU1d
| Это последовательный контейнер, вызывающий модули Conv 1d, Batch Norm 1d и ReLU. |
ConvBnReLU2d
| Это последовательный контейнер, вызывающий модули Conv 2d, Batch Norm 2d и ReLU. |
ConvBnReLU3d
| Это последовательный контейнер, вызывающий модули Conv 3d, Batch Norm 3d и ReLU. |
BNReLU2d
| Это последовательный контейнер, вызывающий модули BatchNorm 2d и ReLU. |
BNReLU3d
| Это последовательный контейнер, вызывающий модули BatchNorm 3d и ReLU. |
torch.ao.nn.intrinsic.qat
Этот модуль реализует версии этих объединённых операций, необходимые для обучения с учётом квантования.
LinearReLU
| Модуль LinearReLU объединяет модули Linear и ReLU и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvBn1d
| Модуль ConvBn1d объединяет Conv1d и BatchNorm1d и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvBnReLU1d
| Модуль ConvBnReLU1d объединяет Conv1d, BatchNorm1d и ReLU и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvBn2d
| Модуль ConvBn2d объединяет Conv2d и BatchNorm2d и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvBnReLU2d
| Модуль ConvBnReLU2d объединяет Conv2d, BatchNorm2d и ReLU и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvReLU2d
| Модуль ConvReLU2d объединяет Conv2d и ReLU и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvBn3d
| Модуль ConvBn3d объединяет Conv3d и BatchNorm3d и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvBnReLU3d
| Модуль ConvBnReLU3d объединяет Conv3d, BatchNorm3d и ReLU и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
ConvReLU3d
| Модуль ConvReLU3d объединяет Conv3d и ReLU и оснащён модулями FakeQuantize для весов; используется при обучении с учётом квантования. |
update_bn_stats
| |
freeze_bn_stats
|
torch.ao.nn.intrinsic.quantized
Этот модуль реализует квантованные версии объединённых операций, таких как conv + relu. Варианты с BatchNorm отсутствуют, поскольку при инференсе BatchNorm обычно сворачивается в свёртку.
BNReLU2d
| Модуль BNReLU2d объединяет BatchNorm2d и ReLU |
BNReLU3d
| Модуль BNReLU3d объединяет BatchNorm3d и ReLU |
ConvReLU1d
| Модуль ConvReLU1d объединяет Conv1d и ReLU |
ConvReLU2d
| Модуль ConvReLU2d объединяет Conv2d и ReLU |
ConvReLU3d
| Модуль ConvReLU3d объединяет Conv3d и ReLU |
LinearReLU
| Модуль LinearReLU объединяет модули Linear и ReLU |
torch.ao.nn.intrinsic.quantized.dynamic
Этот модуль реализует динамически квантованные версии объединённых операций, таких как linear + relu.
LinearReLU
| Модуль LinearReLU объединяет модули Linear и ReLU и может использоваться для динамического квантования. |
torch.ao.nn.qat
Этот модуль реализует версии ключевых модулей nn Conv2d() и Linear(), которые работают в FP32, но с округлением для имитации эффекта квантования INT8.
Conv2d
| Модуль Conv2d с подключёнными модулями FakeQuantize для весов, используемый для обучения с учётом квантования. |
Conv3d
| Модуль Conv3d с подключёнными модулями FakeQuantize для весов, используемый для обучения с учётом квантования. |
Linear
| Модуль Linear с подключёнными модулями FakeQuantize для весов, используемый для обучения с учётом квантования. |
torch.ao.nn.qat.dynamic
Этот модуль реализует версии ключевых модулей nn, например Linear(), которые работают в FP32, но с округлением для имитации эффекта квантования INT8 и динамически квантируются во время инференса.
Linear
| Модуль Linear с подключёнными модулями FakeQuantize для весов, используемый для динамического обучения с учётом квантования. |
torch.ao.nn.quantized
Этот модуль реализует квантованные версии слоёв nn, таких как ~torch.nn.Conv2d и torch.nn.ReLU.
ReLU6
| Применяет поэлементную функцию: |
Hardswish
| Это квантованная версия |
ELU
| Это квантованный эквивалент |
LeakyReLU
| Это квантованный эквивалент |
Sigmoid
| Это квантованный эквивалент |
BatchNorm2d
| Это квантованная версия |
BatchNorm3d
| Это квантованная версия |
Conv1d
| Выполняет одномерную свёртку над квантованным входным сигналом, состоящим из нескольких квантованных входных плоскостей. |
Conv2d
| Выполняет двумерную свёртку над квантованным входным сигналом, состоящим из нескольких квантованных входных плоскостей. |
Conv3d
| Выполняет трёхмерную свёртку над квантованным входным сигналом, состоящим из нескольких квантованных входных плоскостей. |
ConvTranspose1d
| Выполняет операцию одномерной транспонированной свёртки над входным изображением, состоящим из нескольких входных плоскостей. |
ConvTranspose2d
| Выполняет операцию двумерной транспонированной свёртки над входным изображением, состоящим из нескольких входных плоскостей. |
ConvTranspose3d
| Выполняет операцию трёхмерной транспонированной свёртки над входным изображением, состоящим из нескольких входных плоскостей. |
Embedding
| Квантованный модуль Embedding с квантованными упакованными весами на входе. |
EmbeddingBag
| Квантованный модуль EmbeddingBag с квантованными упакованными весами на входе. |
FloatFunctional
| Класс для сбора состояния операций с плавающей точкой. |
FXFloatFunctional
| Модуль для замены модуля FloatFunctional перед квантованием в режиме графа FX, поскольку activation_post_process будет вставлен непосредственно в модуль верхнего уровня |
QFunctional
| Класс-обёртка для квантованных операций. |
Linear
| Квантованный линейный модуль, принимающий и возвращающий квантованные тензоры. |
LayerNorm
| Это квантованная версия |
GroupNorm
| Это квантованная версия |
InstanceNorm1d
| Это квантованная версия |
InstanceNorm2d
| Это квантованная версия |
InstanceNorm3d
| Это квантованная версия |
torch.ao.nn.quantized.functional
Функциональный интерфейс (квантованный).
Этот модуль реализует квантованные версии функциональных слоёв, таких как ~torch.nn.functional.conv2d и torch.nn.functional.relu. Примечание: поддерживает квантованные входные данные.
avg_pool2d
| Выполняет операцию двумерного усредняющего пулинга в областях размером с шагом . |
avg_pool3d
| Выполняет операцию трёхмерного усредняющего пулинга в областях размером с шагом . |
adaptive_avg_pool2d
| Выполняет адаптивный двумерный усредняющий пулинг над квантованным входным сигналом, состоящим из нескольких квантованных входных плоскостей. |
adaptive_avg_pool3d
| Выполняет адаптивный трёхмерный усредняющий пулинг над квантованным входным сигналом, состоящим из нескольких квантованных входных плоскостей. |
conv1d
| Выполняет одномерную свёртку над квантованным одномерным входным сигналом, состоящим из нескольких входных плоскостей. |
conv2d
| Выполняет двумерную свёртку над квантованным двумерным входным сигналом, состоящим из нескольких входных плоскостей. |
conv3d
| Выполняет трёхмерную свёртку над квантованным трёхмерным входным сигналом, состоящим из нескольких входных плоскостей. |
interpolate
| Уменьшает или увеличивает размер входных данных до заданного |
linear
| Применяет линейное преобразование к поступающим квантованным данным: . |
max_pool1d
| Выполняет одномерный максимальный пулинг над квантованным входным сигналом, состоящим из нескольких квантованных входных плоскостей. |
max_pool2d
| Выполняет двумерный максимальный пулинг над квантованным входным сигналом, состоящим из нескольких квантованных входных плоскостей. |
celu
| Поэлементно применяет квантованную функцию CELU. |
leaky_relu
| Квантованная версия функции. |
hardtanh
| Это квантованная версия |
hardswish
| Это квантованная версия |
threshold
| Поэлементно применяет квантованную версию пороговой функции: |
elu
| Это квантованная версия |
hardsigmoid
| Это квантованная версия |
clamp
| float(input, min_, max_) -> Tensor |
upsample
| Увеличивает размер входных данных до заданного |
upsample_bilinear
| Увеличивает размер входных данных с помощью билинейной интерполяции. |
upsample_nearest
| Увеличивает размер входных данных, используя значения пикселей ближайших соседей. |
torch.ao.nn.quantizable
Этот модуль реализует квантуемые версии некоторых слоёв nn. Эти модули можно использовать вместе с механизмом пользовательских модулей, передав аргумент custom_module_config функциям prepare и convert.
LSTM
| Квантуемая сеть долгой краткосрочной памяти (LSTM). |
MultiheadAttention
|
torch.ao.nn.quantized.dynamic
Динамически квантованные Linear, LSTM, LSTMCell, GRUCell и RNNCell.
Linear
| Динамически квантованный линейный модуль, принимающий и возвращающий тензоры с плавающей точкой. |
LSTM
| Динамически квантованный модуль LSTM, принимающий и возвращающий тензоры с плавающей точкой. |
GRU
| Применяет к входной последовательности многослойную рекуррентную нейронную сеть с управляемыми рекуррентными блоками (GRU). |
RNNCell
| Ячейка рекуррентной нейронной сети Элмана с нелинейностью tanh или ReLU. |
LSTMCell
| Ячейка долгой краткосрочной памяти (LSTM). |
GRUCell
| Ячейка с управляемыми рекуррентными блоками (GRU) |
Квантованные типы данных и схемы квантования
Обратите внимание, что реализации операторов в настоящее время поддерживают поканальное квантование только для весов операторов conv и linear. Кроме того, входные данные линейно отображаются в квантованные данные и обратно следующим образом:
где — то же, что и clamp(), а масштаб и нулевая точка вычисляются, как описано в MinMaxObserver, а именно:
где :math:[x_\text{min}, x_\text{max}] обозначает диапазон входных данных, а :math:Q_\text{min} и :math:Q_\text{max} — соответственно минимальное и максимальное значения квантованного типа данных.
Обратите внимание, что выбор :math:s и :math:z означает, что ноль представляется без ошибки квантования, если он входит в диапазон входных данных или используется симметричное квантование.
Дополнительные типы данных и схемы квантования можно реализовать с помощью custom operator mechanism <https://pytorch.org/tutorials/advanced/torch_script_custom_ops.html>_.
-
torch.qscheme— тип, описывающий схему квантования тензора. Поддерживаемые типы:-
torch.per_tensor_affine— потензорное асимметричное квантование -
torch.per_channel_affine— поканальное асимметричное квантование -
torch.per_tensor_symmetric— потензорное симметричное квантование -
torch.per_channel_symmetric— поканальное симметричное квантование
-
-
torch.dtype— тип, описывающий данные. Поддерживаемые типы:-
torch.quint8— 8-разрядное беззнаковое целое число -
torch.qint8— 8-разрядное знаковое целое число -
torch.qint32— 32-разрядное знаковое целое число
-
Модули QAT.
Этот пакет постепенно выводится из употребления. Вместо него используйте torch.ao.nn.qat.modules.
Динамические модули QAT.
Этот пакет постепенно выводится из употребления. Вместо него используйте torch.ao.nn.qat.dynamic.
Этот файл переносится в torch/ao/quantization и сохранён здесь для обеспечения совместимости на время переноса. Если вы добавляете новую запись или функциональность, добавьте её в соответствующие файлы в torch/ao/quantization/fx/ и добавьте сюда оператор импорта.
Динамические модули QAT.
Этот пакет постепенно выводится из употребления. Вместо него используйте torch.ao.nn.qat.dynamic.
Квантованные модули.
- Примечание::
-
Пространство имён
torch.nn.quantizedпостепенно выводится из употребления. Вместо него используйтеtorch.ao.nn.quantized.
Динамические квантованные модули.
Этот файл переносится в torch/ao/nn/quantized/dynamic и сохранён здесь для обеспечения совместимости на время переноса. Если вы добавляете новую запись или функциональность, добавьте её в соответствующий файл в torch/ao/nn/quantized/dynamic и добавьте сюда оператор импорта.
-
torch.quantization.default_eval_fn(model, calib_data)[исходный код] -
Функция оценки по умолчанию принимает torch.utils.data.Dataset или список входных тензоров и запускает модель на наборе данных
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/quantization-support.html