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] -
Создать копию этого класса
- Тип возвращаемого значения:
© 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