Справочник API torch.func
Создано: 11 июня 2025 г. | Последнее обновление: 04 мая 2026 г.
Преобразования функций
vmap
| vmap — это векторизующее отображение; |
grad
| Оператор |
grad_and_value
| Возвращает функцию для вычисления кортежа из градиента и прямого, или прямого прохода, вычисления. |
vjp
| Возвращает кортеж, содержащий результаты применения |
jvp
| Возвращает кортеж, содержащий результат |
linearize
| Возвращает значение |
jacrev
| Вычисляет якобиан |
jacfwd
| Вычисляет якобиан |
hessian
| Вычисляет матрицу Гессе |
functionalize
| functionalize — это преобразование, которое можно использовать для удаления мутаций (промежуточных) и алиасинга из функции, сохраняя при этом ее семантику. |
rearrange
| Нативная реализация |
Утилиты для работы с модулями torch.nn
В общем случае можно применить преобразование к функции, вызывающей torch.nn.Module. Например, ниже показано, как вычислить якобиан функции, которая принимает три значения и возвращает три значения:
model = torch.nn.Linear(3, 3)
def f(x):
return model(x)
x = torch.randn(3)
jacobian = jacrev(f)(x)
assert jacobian.shape == (3, 3)
Однако, если вы хотите, например, вычислить якобиан по параметрам модели, необходимо иметь возможность создать функцию, в которой параметры являются входными данными. Для этого предназначена функция functional_call(): она принимает nn.Module, преобразованный parameters и входные данные для прямого прохода модуля. Она возвращает значение, полученное при выполнении прямого прохода модуля с замененными параметрами.
Вот как можно вычислить якобиан по параметрам
model = torch.nn.Linear(3, 3)
def f(params, x):
return torch.func.functional_call(model, params, x)
x = torch.randn(3)
jacobian = jacrev(f)(dict(model.named_parameters()), x)
functional_call
| Выполняет функциональный вызов модуля, заменяя его параметры и буферы заданными значениями. |
stack_module_state
| Подготавливает список модулей torch.nn для ансамблирования с помощью |
replace_all_batch_norm_modules_
| На месте обновляет |
Если вам нужна информация об исправлении модулей Batch Norm, воспользуйтесь приведенными здесь рекомендациями
Утилиты отладки
debug_unwrap
| Снимает обертку с тензора functorch (например, BatchedTensor или GradTrackingTensor), возвращая исходный тензор. |
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/func.api.html