Spec-Zone.ru › PyTorch 2

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

Spec-Zone.ru

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