no_grad
-
class torch.no_grad(orig_func=None)[source] -
Менеджер контекста, который отключает вычисление градиентов.
Отключение вычисления градиентов полезно для работы с выводами, когда вы уверены, что не будете вызывать
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
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.no_grad.html