inference_mode
-
class torch.inference_mode(mode=True)[source] -
Контекстный менеджер, который включает или выключает режим вывода
InferenceMode — это новый контекстный менеджер, аналогичный
no_grad, который используется, когда вы уверены, что ваши операции не будут взаимодействовать с autograd (например, при обучении модели). Код, выполняемый в этом режиме, обеспечивает лучшую производительность, отключая отслеживание представлений и изменения счётчика версий. Обратите внимание, что в отличие от некоторых других механизмов, которые локально включают или отключают градиенты, вход в inference_mode также отключает forward-mode AD.Этот контекстный менеджер является локальным для потока; он не повлияет на вычисления в других потоках.
Также работает как декоратор.
Примечание
Режим вывода — один из нескольких механизмов, которые могут локально включать или отключать градиенты. См. Локальное отключение вычисления градиентов для получения дополнительной информации о том, как они сравниваются.
- Параметры
-
mode (bool или функция) — либо булево значение, определяющее включение или отключение режима вывода, либо функция Python, которую нужно декорировать с включённым режимом вывода
- Пример::
-
>>> import torch >>> x = torch.ones(1, 2, 3, requires_grad=True) >>> with torch.inference_mode(): ... y = x * x >>> y.requires_grad False >>> y._version Traceback (most recent call last): File "<stdin>", line 1, in <module> RuntimeError: Inference tensors do not track version counter. >>> @torch.inference_mode() ... def func(x): ... return x * x >>> out = func(x) >>> out.requires_grad False >>> @torch.inference_mode ... def doubler(x): ... return x * 2 >>> out = doubler(x) >>> out.requires_grad False
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.inference_mode.html