Spec-Zone.ru › PyTorch 2.14

enforce_grad_layout_policy

class torch.autograd.grad_mode.enforce_grad_layout_policy(enable=True) [source]

Контекстный менеджер, управляющий применением политики размещения градиентов.

Контракт размещения градиентов гарантирует, что накопленные градиенты имеют шаги, соответствующие их параметрам (для неперекрывающихся плотных параметров), или являются непрерывными в порядке строк (в противном случае). Это повышает производительность оптимизаторов и распределённых редукторов.

Когда enable=False, движок autograd ослабляет применение этого правила:

  • Градиенты, которые можно передать напрямую и расположение которых не соответствует параметру, всё равно можно передать напрямую (избегая дополнительного копирования).
  • Предупреждение «градиент и параметр не соответствуют контракту размещения градиентов» подавляется.

Логика, которая создаёт новый градиент (например, клонирует его в нужное расположение, если градиент нельзя передать напрямую), не зависит от этого флага.

Его можно использовать как контекстный менеджер или как функцию. Он действует только в текущем потоке и не влияет на вычисления в других потоках.

Параметры:

enable (bool) – Нужно ли применять контракт размещения градиентов (True, по умолчанию) или ослабить его применение (False).

Пример::
>>> import torch
>>> p = torch.empty(2, 3, 4).permute(2, 0, 1).requires_grad_()
>>> with torch.autograd.enforce_grad_layout_policy(False):
...     (p * 2).sum().backward()
...     # p.grad may now have the same strides as the incoming
...     # gradient rather than being forced to match p's strides.
clone() [source]

Создать копию этого класса

Тип возвращаемого значения:

enforce_grad_layout_policy

© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.autograd.grad_mode.enforce_grad_layout_policy.html

Spec-Zone.ru

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