torch.autograd.forward_ad.make_dual
-
torch.autograd.forward_ad.make_dual(tensor, tangent, *, level=None)[source] -
Связывает значение тензора с прямым градиентом, касательной, для создания «дуального тензора», который используется для вычисления градиентов прямой AD. Результатом является новый тензор, связанный с
tensorсtangentвстроенным как атрибут как есть, если у него такая же структура хранения, или скопированным в противном случае. Атрибут касательной можно восстановить с помощьюunpack_dual().Эта функция обратима.
Учитывая функцию
f, чья якобианная матрица равнаJ, это позволяет вычислить произведение якобиана на вектор (jvp) междуJи заданным векторомvследующим образом.Пример:
>>> with dual_level(): ... inp = make_dual(x, v) ... out = f(inp) ... y, jvp = unpack_dual(out)
Обратитесь к руководству по forward-mode AD для подробных шагов по использованию этого API.
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.autograd.forward_ad.make_dual.html