Spec-Zone.ru › PyTorch 1

torch.autograd.grad

torch.autograd.grad(outputs, inputs, grad_outputs=None, retain_graph=None, create_graph=False, only_inputs=True, allow_unused=False, is_grads_batched=False) [source]

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

grad_outputs должна быть последовательностью длиной, соответствующей output, содержащей «вектор» в векторно-Якобиновой произведении, обычно предварительно вычисленные градиенты по отношению к каждому из выходов. Если выход не требует вычисления градиента, то градиент может быть None).

Примечание

Если вы выполняете какие-либо операции прямого распространения, создаёте grad_outputs, и/или вызываете grad в контексте пользовательского потока CUDA, см. Семантика потоков обратного распространения.

Примечание

Аргумент only_inputs устарел и теперь игнорируется (по умолчанию True). Для накопления градиента для других частей графа, пожалуйста, используйте torch.autograd.backward.

Параметры:
  • outputs (последовательность тензоров) – выходы дифференцируемой функции.
  • inputs (последовательность тензоров) – Входы по отношению к которым будет возвращён градиент (и не накапливается в .grad).
  • grad_outputs (последовательность тензоров) – «Вектор» в векторно-Якобиновой произведении. Обычно градиенты по отношению к каждому выходу. Значения None могут быть указаны для скалярных тензоров или тензоров, которые не требуют градиента. Если значение None приемлемо для всех grad_tensors, то этот аргумент необязателен. По умолчанию: None.
  • retain_graph (bool, необязательно) – Если False, граф, используемый для вычисления градиента, будет освобождён. Обратите внимание, что почти во всех случаях установка этого параметра в True не нужна и часто её можно обойти гораздо более эффективным способом. По умолчанию значение create_graph.
  • create_graph (bool, необязательно) – Если True, будет построен граф производной, позволяющий вычислить производные высшего порядка. По умолчанию: False.
  • allow_unused (bool, необязательно) – Если False, указание входов, которые не использовались при вычислении выходов (и, следовательно, их градиент всегда равен нулю), является ошибкой. По умолчанию False.
  • is_grads_batched (bool, необязательно) – Если True, первое измерение каждого тензора в grad_outputs будет интерпретироваться как размерность пакета. Вместо вычисления одного векторно-Якобинового произведения мы вычисляем пакет векторно-Якобиновых произведений для каждого «вектора» в пакете. Мы используем прототип функции vmap в качестве ядра для векторизации вызовов механизма autograd, чтобы эта вычисление могла выполняться в одном вызове. Это должно привести к улучшению производительности по сравнению с ручным циклом и многократным выполнением обратного распространения. Обратите внимание, что из-за того, что эта функция экспериментальна, могут быть резкие изменения в производительности. Пожалуйста, используйте torch._C._debug_only_display_vmap_fallback_warnings(True) для отображения любых предупреждений о производительности и отправьте вопрос на github, если предупреждения существуют для вашего случая использования. По умолчанию False.
Тип возвращаемого значения:

Кортеж[Тензор, …]

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/1.13/generated/torch.autograd.grad.html

Spec-Zone.ru

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