Spec-Zone.ru › PyTorch 2.14

torch.fx.experimental

Создано: 7 февр. 2024 г. | Последнее обновление: 24 апр. 2026 г.

Предупреждение

Эти API являются экспериментальными и могут измениться без предварительного уведомления.

class torch.fx.experimental.sym_node.DynamicInt(val) [исходный код]

Пользовательский API для пометки динамических целых чисел в torch.compile. Предназначен для совместимости как с режимом компиляции, так и с eager-режимом.

Пример использования:

fn = torch.compile(f)
x = DynamicInt(4)
fn(x)  # compiles x as a dynamic integer input; returns f(4)
Тип возвращаемого значения:

Self

torch.fx.experimental.sym_node

is_channels_last_contiguous_2d
is_channels_last_contiguous_3d
is_channels_last_strides_2d
is_channels_last_strides_3d
is_contiguous
is_non_overlapping_and_dense_indicator
method_to_operator
sympy_is_channels_last_contiguous_2d
sympy_is_channels_last_contiguous_3d
sympy_is_channels_last_strides_2d
sympy_is_channels_last_strides_3d
sympy_is_channels_last_strides_generic
sympy_is_contiguous
sympy_is_contiguous_generic
to_node

torch.fx.experimental.symbolic_shapes

ShapeEnv
DimDynamic

Определяет, как выполнять выделение символа для измерения.

StrictMinMaxConstraint

Для клиентов: размер этого измерения должен находиться в пределах 'vr' (который задаёт включительные нижнюю и верхнюю границы) И быть неотрицательным; он не должен быть равен 0 или 1 (см. примечание ниже).

RelaxedUnspecConstraint

Для клиентов: явных ограничений нет; ограничение определяется неявно защитными проверками, выведенными при трассировке.

EqualityConstraint

Представляет различные виды ограничений на равенство между источниками входных данных и определяет их выполнение.

SymbolicContext

Структура данных, задающая, как следует создавать символы в _create_symbolic_sizes_strides_storage_offset, например статическими или динамическими.

StatelessSymbolicContext

Создаёт символы в _create_symbolic_sizes_strides_storage_offset на основе определения symbolic_context, заданного посредством DimDynamic и DimConstraint.

StatefulSymbolicContext

Создаёт символы в _create_symbolic_sizes_strides_storage_offset на основе определения symbolic_context, заданного кешем Source:Symbol.

SubclassSymbolicContext

Правильный символический контекст для заданного внутреннего тензора трассируемого подкласса тензора может отличаться от внешнего символического контекста.

SymIntEqByExpr

Это оболочка для SymInt с альтернативной семантикой равенства и сериализации с помощью pickle.

SymIntSymbolicContext

Структура данных, задающая ограничения для входного значения SymInt.

TrackedFake

Отслеживает источники всех фиктивных тензоров, которые мы оборачиваем в Dynamo.

ValueRangesSLoc

Расположения защитных проверок, вызвавших ограничения снизу и сверху.

DimConstraints

Пользовательский решатель системы ограничений на символические измерения.

ShapeEnvSettings

Содержит все настройки среды форм, потенциально влияющие на диспетчеризацию FakeTensor.

ConvertIntKey
CallMethodKey
PropagateUnbackedSymInts
DivideByKey
InnerTensorKey
Specialization

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

is_concrete_int

Вспомогательная функция для проверки, является ли базовый объект в SymInt конкретным значением.

is_concrete_bool

Вспомогательная функция для проверки, является ли базовый объект в SymBool конкретным значением.

is_concrete_float

Вспомогательная функция для проверки, является ли базовый объект в SymInt конкретным значением.

has_free_symbols

Более быстрая версия bool(free_symbols(val))

has_free_unbacked_symbols

Более быстрая версия bool(free_unbacked_symbols(val))

guard_or_true

Попытаться установить защитную проверку для a; если возникает ошибка из-за зависимости от данных, просто вернуть true.

guard_or_false

Попытаться установить защитную проверку для a; если возникает ошибка из-за зависимости от данных, просто вернуть false.

guard_size_oblivious

Выполнить защитную проверку символического булева выражения способом, не зависящим от размера.

sym_and

Логическое «и» для символических выражений без преобразования в bool.

sym_eq

Подобно ==, но при работе со списком или кортежем рекурсивно проверяет равенство и объединяет результаты с помощью sym_and без выполнения защитной проверки.

sym_or

Логическое «или» для символических выражений без преобразования в bool.

constrain_range

Накладывает ограничение, согласно которому переданное значение SymInt должно находиться в диапазоне от min до max включительно, НЕ создавая защитную проверку для SymInt (это позволяет применять функцию к значениям SymInt без подложки).

constrain_unify

Накладывает на два значения SymInt ограничение, согласно которому они должны быть равны.

canonicalize_bool_expr

Приводит булево выражение к каноническому виду, преобразуя его в неравенство lt / le и перенося все неконстантные слагаемые в правую часть.

statically_known_true

Возвращает True, если x можно упростить до константы и эта константа истинна.

statically_known_false

Возвращает True, если x можно упростить до константы и эта константа равна False.

has_static_value

Удобная для пользовательского кода вспомогательная функция для проверки, является ли значение статическим или динамическим.

lru_cache
check_consistent

Проверяет, что два значения «meta» (обычно Tensor или SymInt) имеют одинаковые значения, например после повторной трассировки.

compute_unbacked_bindings

После выполнения распространения фиктивных тензоров и получения результата example_value обходит example_value в поисках недавно привязанных символов без подложки и записывает их пути для последующего использования.

rebind_unbacked

Предположим, что мы повторно трассируем существующий граф FX, для которого ранее выполнялось распространение фиктивных тензоров (и поэтому в нём имеются значения SymInt без подложки).

resolve_unbacked_bindings

При распространении фиктивных тензоров мы часто выделяем новые значения symint без подложки.

is_accessor_node

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

cast_symbool_to_symint_guardless

Преобразует SymBool или bool в SymInt или int без создания защитных проверок.

create_contiguous
error
eval_guards
eval_is_non_overlapping_and_dense
find_symbol_binding_fx_nodes

Находит в графе FX все узлы, привязывающие символы sympy.

free_symbols

Рекурсивно собирает все свободные символы из значения.

free_unbacked_symbols

Как free_symbols, но возвращает только символы без подложки.

fx_placeholder_targets
fx_placeholder_vals
guard_bool
guard_float
guard_int
guard_scalar

Выполняет защитную проверку скалярного значения, которым может быть символическое или конкретное логическое, целочисленное значение либо число с плавающей запятой.

guarding_hint_or_throw

Возвращает конкретную подсказку для символического значения, используемую при принятии решений о защитных проверках.

has_guarding_hint

Проверяет, доступна ли для символического значения подсказка, используемая при выполнении защитных проверок.

has_symbolic_sizes_strides
is_nested_int
is_symbol_binding_fx_node

Проверяет, является ли заданный узел FX узлом привязки символа.

is_symbolic
optimization_hint

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

expect_true
log_lru_cache_stats

torch.fx.experimental.proxy_tensor

make_fx

Для заданной функции f возвращает новую функцию, которая при выполнении с допустимыми аргументами для f возвращает FX GraphModule, представляющий набор операций, выполненных в ходе выполнения.

handle_sym_dispatch

Вызывает текущий активный режим proxy-трассировки для выполнения трассировки диспетчеризации SymInt/SymFloat/SymBool функции, работающей с этими аргументами.

get_innermost_proxy_mode
get_proxy_mode

Текущий активный режим proxy-трассировки или None, если в данный момент трассировка не выполняется.

maybe_enable_thunkify

В рамках этого менеджера контекста, если выполняется трассировка make_fx, мы преобразуем все вычисления SymNode в отложенные и не будем добавлять их в граф, если только это действительно не потребуется.

maybe_disable_thunkify

Отключает преобразование в отложенные вычисления в заданном контексте.

selective_decompose

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

thunkify

Откладывает вычисление f до следующего вызова. Также кэширует результат.

track_tensor
track_tensor_tree
decompose
disable_autocast_cache
disable_proxy_modes_tracing
dispatch_trace
extract_val
fake_signature

Из-за аргументов переменной длины FX работает некорректно; исправляем это.

fetch_object_proxy
fetch_sym_proxy
has_proxy_slot
is_sym_node
maybe_handle_decomp
proxy_call
set_meta
set_original_aten_op
set_proxy_slot
snapshot_fake

torch.fx.experimental.optimization

extract_subgraph

Получив списки узлов существующего графа, представляющие подграф, возвращает подмодуль, выполняющий этот подграф.

gen_mkl_autotuner

Создаёт эвристику, которую можно передать в optimize_for_inference. Она определяет, следует ли выполнять подграф в MKL, запуская его с example_inputs.

matches_module_pattern
modules_to_mkldnn

Для каждого узла, являющегося модулем, который можно предварительно преобразовать в MKLDNN, выполняет такое преобразование и создаёт сопоставление, позволяющее преобразовать версию модуля для MKLDNN в исходную.

optimize_for_inference

Выполняет набор проходов оптимизации модели для инференса.

remove_dropout

Удаляет из модуля все слои dropout.

replace_node_module
reset_modules

Возвращает исходное состояние каждого модуля, изменённого с помощью modules_to_mkldnn.

use_mkl_length

Это эвристика, которую можно передать в optimize_for_inference. Она определяет, следует ли выполнять подграф в MKL, проверяя, содержит ли он более 2 узлов.

torch.fx.experimental.recording

record_shapeenv_event
replay_shape_env_events
shape_env_check_state_equal

torch.fx.experimental.unification.core

reify

Заменяет переменные выражения подстановкой >>> x, y = var(), var() >>> e = (1, x, (3, y)) >>> s = {x: 2, y: 4} >>> reify(e, s) (1, 2, (3, 4)) >>> e = {1: x, 3: (y, 5)} >>> reify(e, s) {1: 2, 3: (4, 5)}

torch.fx.experimental.unification.multipledispatch.utils

typename

Получает имя type.

expand_tuples
>>> expand_tuples([1, (2, 3)])
groupby

Группирует коллекцию по функции-ключу >>> names = ["Alice", "Bob", "Charlie", "Dan", "Edith", "Frank"] >>> groupby(len, names) # doctest: +SKIP {3: ['Bob', 'Dan'], 5: ['Alice', 'Edith', 'Frank'], 7: ['Charlie']} >>> iseven = lambda x: x % 2 == 0 >>> groupby(iseven, [1, 2, 3, 4, 5, 6, 7, 8]) # doctest: +SKIP {False: [1, 3, 5, 7], True: [2, 4, 6, 8]} .

raises
reverse_dict

Обращает направление зависимостей в словаре.

torch.fx.experimental.unification.unification_tools

assoc

Возвращает новый dict с новой парой ключ-значение.

assoc_in

Возвращает новый dict с новой, возможно вложенной, парой ключ-значение.

dissoc

Возвращает новый dict с удалённым указанным ключом или ключами.

first

Первый элемент последовательности.

get_in

Возвращает coll[i0][i1]...[iX], где [i0, i1, ..., iX]==keys.

groupby

Группирует коллекцию по функции-ключу.

keyfilter

Фильтрует элементы словаря по ключу.

keymap

Применяет функцию к ключам словаря.

merge

Объединяет коллекцию словарей.

merge_with

Объединяет словари и применяет функцию к объединённым значениям.

update_in

Обновляет значение во (возможно) вложенном словаре.

valfilter

Фильтрует элементы словаря по значению.

valmap

Применяет функцию к значениям словаря.

itemfilter

Фильтрует элементы словаря по элементу.

itemmap

Применяет функцию к элементам словаря.

torch.fx.experimental.migrate_gradual_types.transform_to_z3

transform_algebraic_expression

Преобразует алгебраическое выражение в формат z3 :param expr: Выражение представляет собой переменную измерения или алгебраическое выражение

transform_all_constraints

По заданной трассировке генерирует ограничения и преобразует их в формат z3.

transform_all_constraints_trace_time

Получает узел и граф и генерирует два набора ограничений.

transform_dimension

Получает переменную измерения или число и преобразует его в кортеж согласно принятой схеме :param dimension: Измерение для преобразования :param counter: отслеживание переменных

transform_to_z3
transform_var

Преобразует переменные тензора в формат, понятный z3 :param tensor: Переменная тензора или тип тензора, возможно, с переменными измерениями

evaluate_conditional_with_constraints

Получив IR и узел, представляющий условное выражение, вычисляет это условное выражение и его отрицание :param tracer_root: Корень трассировщика для экземпляров модуля :param node: Узел для вычисления

iterate_till_fixed_point

Преобразует ограничения до достижения неподвижной точки.

torch.fx.experimental.migrate_gradual_types.constraint

is_algebraic_expression
is_bool_expr
is_dim

torch.fx.experimental.migrate_gradual_types.constraint_generator

adaptive_inference_rule
add_layer_norm_constraints

Ограничения указывают, что тип имеет форму: [*, 1024, 1024], а normalized_dim имеет форму [1024, 1024].

add_linear_constraints
arange_inference_rule
assert_inference_rule
batchnorm_inference_rule
bmm_inference_rule

Ограничения, сопоставляющие вход тензору размера 3 и переставляющие измерения согласно правилам пакетного умножения

broadcasting_inference_rule
conv2d_inference_rule
cumsum_inference_rule

Формы входа и выхода должны совпадать. Необходимо проверить допустимость индекса.

embedding_inference_rule

Форма выхода отличается от формы входа последним измерением

embedding_inference_rule_functional
eq_inference_rule
equality_inference_rule

Создаётся ограничение: input = output

expand_inference_rule

Создаются те же ограничения, что и для сложения тензоров, но ранг этого выражения ограничивается значением len(n.args[1:]), чтобы для выхода рассматривались только соответствующие случаи.

flatten_inference_rule
full_inference_rule
gen_broadcasting_constraints
gen_embedding_rules
gen_layer_norm_constraints
generate_flatten_constraints
get_attr_inference_rule

Если атрибут равен "device", форма тензора сохраняется

getitem_inference_rule
gt_inference_rule
index_select_inference_rule
layer_norm_functional

Создаётся ограничение: input = output

layer_norm_inference_rule

Формы входа и выхода должны совпадать.

linear_constraints
linear_inference_rule

Размеры входа и выхода должны совпадать, кроме последнего измерения. Если вход имеет тип Dyn, выход также должен иметь тип Dyn.

lt_inference_rule
masked_fill_inference_rule

Аналогично сложению.

maxpool_inference_rule
neq_inference_rule

В системе постепенных типов это приводит к противоречию.

range_check

Проверяет, находится ли индекс i в пределах списка размера n :param i: индекс :param n: размер списка

register_inference_rule
relu_inference_rule

Формы входа и выхода должны совпадать.

reshape_inference_rule
size_inference_rule

Ограничение представляет собой равенство lhs = rhs.

tensor_inference_rule

Если тензор является скаляром, он будет пропущен, поскольку скаляры пока не поддерживаются.

torch_dim_inference_rule
torch_linear_inference_rule
transpose_inference_rule

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

type_inference_rule

Создаётся ограничение: input = output

view_inference_rule

Аналогично reshape, но с дополнительным условием для шагов

register_inference_rule
transpose_inference_rule

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

range_check

Проверяет, находится ли индекс i в пределах списка размера n :param i: индекс :param n: размер списка

torch.fx.experimental.migrate_gradual_types.constraint_transformation

apply_padding

Рассматривается случай, когда у одного входа меньше измерений, чем у другого, поэтому к результатам широковещательного преобразования применяется дополнение

broadcast_dim

Применяет широковещательное преобразование к измерению «index» тензора tensor_input1.

calc_last_two_dims

Генерирует ограничения для двух последних измерений свёртки или результата maxpool :param constraint: CalcConv или CalcMaxPool :param d: Список выходных измерений

create_equality_constraints_for_broadcasting

Создаёт ограничения равенства для случая, когда широковещательное преобразование не выполняется :param e1: Вход 1 :param e2: Вход 2 :param e11: Вход 1 после широковещательного преобразования :param e12: Вход 2 после широковещательного преобразования :param d1: Переменные, хранящие измерения e1 :param d2: Переменные, хранящие измерения e2 :param d11: Переменные, хранящие измерения e11 :param d12: Переменные, хранящие измерения e22

gen_all_reshape_possibilities

Рассматривает все возможные варианты измерений входа (число или динамическое значение), затем генерирует соответствующие ограничения с использованием умножения или взятия остатка в зависимости от варианта. Рассматриваемые здесь варианты представляют собой декартово произведение случаев, когда значение входа равно dyn или не равно dyn.

gen_broadcasting_constraints

Моделирует широковещательное преобразование для e1 и e2 и возвращает результаты соответственно в e11 и e12.

gen_consistency_constraints
param constraint:

Ограничение согласованности тензоров

gen_greatest_upper_bound
param constraint:

Наименьшая верхняя грань тензоров

gen_lists_of_dims

Генерирует списки DVar для представления измерений тензоров :param num_tensors: Требуемое число тензоров :param dim_size: Число измерений каждого тензора :param counter: Переменная для отслеживания

generate_all_broadcasting_possibilities_no_padding

Генерирует ограничения широковещательного преобразования, предполагая отсутствие дополнения.

generate_all_int_dyn_dim_possibilities

Генерирует все варианты равенства или неравенства dyn для my_list :param my_list: Список измерений тензора

generate_binconstraint_d

Преобразует бинарные ограничения для измерений

generate_binconstraint_t

Преобразует бинарные ограничения для тензоров

generate_broadcasting

Преобразует ограничения широковещательного преобразования

generate_calc_conv
generate_calc_maxpool

Преобразует ограничения maxpool

generate_calc_product

Преобразует ограничения flatten

generate_conj

Преобразует конъюнкции

generate_d_gub

Преобразует наименьшую верхнюю грань для измерений в ограничения равенства

generate_disj

Преобразует дизъюнкции

generate_gub

Преобразует наименьшую верхнюю грань для тензоров.

generate_reshape

Преобразует ограничения reshape

is_target_div_by_dim

Генерирует ограничения для проверки делимости целевых измерений на входные :param target: Целевые измерения :param dim: Входные измерения

no_broadcast_dim_with_index
param d1:

вход 1

register_transformation_rule
transform_constraint

Преобразует ограничение в более простое ограничение.

transform_get_item

Генерирует равенство вида: t = [a1, ..., an], а затем генерирует ограничения для проверки допустимости заданного индекса при данном размере тензора.

transform_get_item_tensor

Если индекс является кортежем, результатом будет тензор TODO: нужно проверить, так ли это для всех моделей HF

transform_index_select

Ограничения учитывают заданный размер тензора, проверяют допустимость индекса и, если он допустим, генерируют ограничение для замены входного измерения требуемым измерением

transform_transpose

Аналогично последовательности из двух операций index-select

valid_index

Проверяет, допустим ли индекс в списке заданных измерений

valid_index_tensor

Если число экземпляров среза превышает число измерений, возникает ошибка типа, поэтому возвращается False

is_dim_div_by_target

Генерирует ограничения для проверки делимости входных измерений на целевые :param target: Целевые измерения :param dim: Входные измерения

torch.fx.experimental.graph_gradual_typechecker

adaptiveavgpool2d_check
adaptiveavgpool2d_inference_rule

Размеры входа и выхода должны совпадать, за исключением двух последних измерений входа, которые соответствуют ширине и высоте

add_inference_rule

Применяет правило вывода типа для сложения.

all_eq

Для операций, в которых форма входа совпадает с формой выхода

bn2d_inference_rule

Для экземпляра BatchNorm2D и узла проверяются следующие условия: - тип входа можно расширить до тензора размера 4: t = (x_1, x_2, x_3, x_4) - тип текущего узла можно расширить до тензора размера 4: t' = (x_1', x_2', x_3', x_4') - t согласуется с t' - x_2 согласуется с num_features модуля - x_2' согласуется с num_features модуля тип выхода: наиболее точный тип среди t и t'

broadcast_types

Применяет широковещательное преобразование к обоим заданным типам, чтобы они согласовывались друг с другом, и возвращает два новых результирующих типа

calculate_out_dimension

Для вычисления h_in и w_out согласно документации conv2D

conv2d_inference_rule

Для экземпляра Conv2D и узла проверяются следующие условия: - тип входа можно расширить до тензора размера 4: t = (x_1, x_2, H, W) - тип текущего узла можно расширить до тензора размера 4: t' = (x_1', x_2', x_3', x_4') - x_2 согласуется с in_channels модуля - пусть o = (x_1, out_channels, H_out, W_out), тогда выходом будет наименьшая верхняя грань o и существующего типа узла t'.

conv_refinement_rule

Ограничения равенства задаются между первым измерением входа и выхода

conv_rule

По возможности представляет выход в виде алгебраического выражения относительно входа

element_wise_eq

Для поэлементных операций; обрабатывает широковещательное преобразование.

expand_to_tensor_dim

По возможности расширяет тип до требуемого числа измерений тензора. В противном случае вызывает ошибку.

first_two_eq

Для операций, в которых совпадают первые два измерения формы входа и выхода

flatten_check
flatten_inference_rule

Применяет информацию о форме flatten к входу, а затем вычисляет наименьшую верхнюю грань полученного типа и существующего типа

flatten_refinement_rule

Генерирует ограничения равенства между измерениями входа и выхода, которые не участвуют в операции flatten

get_attr_inference_rule

Текущее правило getattr обрабатывает только атрибут shape. Его можно расширить для работы с другими атрибутами. Наиболее общий тип, которым мы располагаем, — «Dyn», но систему можно расширить, добавив другие типы, например тип для представления форм

get_greatest_upper_bound

Возвращает наиболее точный тип, согласующийся с заданными типами

get_parameter

Возвращает параметр, заданный target, если он существует; в противном случае вызывает ошибку.

GraphTypeChecker
linear_check

Проверяет, удовлетворяет ли тип входного тензора условиям линейной операции, и возвращает тип выхода на основе in_features и out_features, заданных module_instance

linear_inference_rule

Применяет информацию о форме к входу, а затем вычисляет наименьшую верхнюю грань полученного типа и существующего типа

linear_refinement_rule

Ограничения равенства задаются между первым измерением входа и выхода

maxpool2d_check

Применяет информацию о форме maxpool2d к входу; это затрагивает два последних измерения

maxpool2d_inference_rule

Для экземпляра MaxPool2D и узла проверяются следующие условия:

register_algebraic_expressions_inference_rule
register_inference_rule
register_refinement_rule
relu_inference_rule

Формы входа и выхода должны совпадать.

reshape_inference_rule

При отсутствии динамических измерений правило проверяет, что произведение элементов типа тензора-аргумента равно произведению элементов требуемой формы.

transpose_inference_rule

Проверяем, что измерения для операций transpose находятся в пределах допустимого диапазона для типа тензора узла

torch.fx.experimental.meta_tracer

embedding_override
functional_relu_override
gen_constructor_wrapper
nn_layernorm_override
proxys_to_metas
symbolic_trace
torch_abs_override
torch_nn_relu_override
torch_relu_override
torch_where_override

torch.fx.experimental.accelerator_partitioner

check_dependency

Для заданного раздела проверить с помощью BFS, существует ли в этом разделе циклическая зависимость

combine_two_partitions

Для заданного списка разделов и двух его разделов объединить эти два раздела в новый, добавив его в список, и удалить прежние два раздела из списка

reorganize_partitions

Для заданного списка разделов изменить идентификатор раздела, его родительские и дочерние элементы для каждого раздела

reset_partition_device
set_parents_and_children

Для заданного списка разделов отметить родительские и дочерние элементы каждого раздела

torch.fx.experimental.debug

set_trace

Устанавливает точку останова в сгенерированном коде Python для gm.

torch.fx.experimental.merge_matmul

are_nodes_independent

Проверить, являются ли все заданные узлы попарно независимыми по данным.

may_depend_on

Определить, зависит ли один узел от другого в torch.fx.Graph.

merge_matmul

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

torch.fx.experimental.unification.match

edge

A следует проверять перед B. Порядок разрешения конфликтов задаётся tie_breaker; по умолчанию используется hash

match
ordering

Рациональный порядок проверки сигнатур, от первой до последней. Топологическая сортировка рёбер, заданных с помощью edge и supercedes

supercedes

a — более конкретное совпадение, чем b

torch.fx.experimental.unification.more

reify_object

Восстановить объект Python с помощью подстановки >>> class Foo(object): .

unifiable

Зарегистрировать стандартные операции унификации и восстановления для класса. Для определения природы терма используются его тип и атрибуты __dict__ или __slots__. См. также: >>> class A(object): .

unify_object

Унифицировать два объекта Python. Унифицируются их типы и атрибуты __dict__ >>> class Foo(object): .

torch.fx.experimental.unification.multipledispatch.conflict

ambiguities

Все пары сигнатур, для которых A неоднозначна с B

ambiguous

A совместима с B, но ни одна из них не является строго более конкретной

consistent

Существует список аргументов, удовлетворяющий одновременно A и B

edge

A следует проверять перед B. Порядок разрешения конфликтов задаётся tie_breaker; по умолчанию используется hash

ordering

Рациональный порядок проверки сигнатур, от первой до последней. Топологическая сортировка рёбер, заданных с помощью edge и supercedes

super_signature

Сигнатура, устраняющая неоднозначность

supercedes

A совместима с B и строго более конкретна

torch.fx.experimental.unification.multipledispatch.core

dispatch

Диспетчеризация функции по типам входных данных. Поддерживает диспетчеризацию по всем позиционным аргументам.

ismethod

Является ли func методом? Важно, чтобы это работало после определения метода, но до определения класса.

torch.fx.experimental.unification.multipledispatch.dispatcher

ambiguity_warn

Выдать предупреждение при обнаружении неоднозначности.

halt_ordering

Устаревший интерфейс для временного отключения упорядочивания.

restart_ordering

Устаревший интерфейс для временного возобновления упорядочивания.

source
str_signature

Строковое представление сигнатуры типов >>> str_signature((int, float)) 'int, float'

variadic_signature_matches
variadic_signature_matches_iter

Проверить, соответствует ли набор входных типов вариативной сигнатуре.

warning_text

Текст предупреждений о неоднозначности

torch.fx.experimental.unification.multipledispatch.variadic

isvariadic

Проверить, является ли тип obj вариативным.

torch.fx.experimental.unification.utils

freeze

Преобразовать контейнер в хешируемую форму >>> freeze(1) 1 >>> freeze([1, 2]) (1, 2) >>> freeze({1: 2}) # doctest: +SKIP frozenset([(1, 2)])

hashable
raises
reverse_dict

Изменяет направление словаря зависимостей.

transitive_get

Транзитивный dict.get >>> d = {1: 2, 2: 3, 3: 4} >>> d.get(1) 2 >>> transitive_get(1, d) 4

xfail

torch.fx.experimental.unification.variable

var
variables

Контекстный менеджер для логических переменных

vars

torch.fx.experimental.unify_refinements

check_for_type_equality

Проверка равенства для использования в поиске неподвижных точек.

convert_eq

Преобразовать ограничения равенства в формат, подходящий для библиотеки унификации.

infer_symbolic_types

Дважды вызывает наш механизм символьного вывода типов.

infer_symbolic_types_single_pass

Один раз вызывает наш механизм символьного вывода типов.

substitute_all_types

Применять наиболее общий унификатор ко всем типам в графе до достижения неподвижной точки.

substitute_solution_one_type

Применить наиболее общий унификатор к типу

unify_eq

Применить унификацию к набору ограничений равенства

torch.fx.experimental.validator

bisect
TranslationValidator
translation_validation_enabled
translation_validation_timeout
z3op
z3str

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/fx.experimental.html

Spec-Zone.ru

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