no_grad
-
class torch.no_grad(orig_func: F)[исходный код] - классtorch.no_grad(orig_func:None=None)
-
Менеджер контекста, отключающий вычисление градиентов.
Отключение вычисления градиентов полезно при инференсе, когда вы уверены, что не будете вызывать
Tensor.backward(). Это позволит снизить потребление памяти при вычислениях, для которых в противном случае выполнялось быrequires_grad=True.В этом режиме результат каждого вычисления будет иметь
requires_grad=False, даже если входные данные имеютrequires_grad=True. Есть одно исключение! Этот режим НЕ влияет на фабричные функции и функции, которые создают новый тензор и принимают аргумент requires_grad.Этот менеджер контекста действует только в текущем потоке; он не влияет на вычисления в других потоках.
Также может использоваться как декоратор.
Примечание
Отключение градиентов с помощью no-grad — один из нескольких механизмов, позволяющих локально включать или отключать градиенты. Дополнительные сведения о различиях между ними см. в разделе Локальное отключение вычисления градиентов.
Примечание
Этот API не применяется к AD в прямом режиме. Чтобы отключить прямой AD для вычисления, можно распаковать двойственные тензоры.
- Пример::
-
>>> x = torch.tensor([1.], requires_grad=True) >>> with torch.no_grad(): ... y = x * 2 >>> y.requires_grad False >>> @torch.no_grad() ... def doubler(x): ... return x * 2 >>> z = doubler(x) >>> z.requires_grad False >>> @torch.no_grad() ... def tripler(x): ... return x * 3 >>> z = tripler(x) >>> z.requires_grad False >>> # factory function exception >>> with torch.no_grad(): ... a = torch.nn.Parameter(torch.rand(10)) >>> a.requires_grad True
© 2026, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://docs.pytorch.org/docs/2.14/generated/torch.no_grad.html