Spec-Zone.ru › PyTorch 2.14

inference_mode

class torch.autograd.grad_mode.inference_mode(mode=True) [исходный код]

Менеджер контекста, который включает или отключает режим инференса.

InferenceMode аналогичен no_grad и должен использоваться, когда вы уверены, что ваши операции не будут взаимодействовать с autograd (например, при загрузке данных или оценке модели). По сравнению с no_grad, он сокращает дополнительные накладные расходы, отключая отслеживание представлений и увеличение счётчика версий. Он также накладывает больше ограничений: тензоры, созданные в этом режиме, нельзя использовать в вычислениях, отслеживаемых autograd.

Этот менеджер контекста действует только в текущем потоке и не влияет на вычисления в других потоках.

Также может использоваться как декоратор.

Примечание

Режим инференса — один из нескольких механизмов, позволяющих локально включать или отключать вычисление градиентов. Сравнение приведено в разделе Локальное отключение вычисления градиентов. Если трудно избежать использования тензоров, созданных в режиме инференса, в областях, отслеживаемых autograd, рассмотрите возможность сравнить производительность кода с режимом инференса и без него, чтобы оценить преимущества в производительности и компромиссы. Вместо этого всегда можно использовать no_grad.

Примечание

В отличие от некоторых других механизмов локального включения или отключения grad, вход в inference_mode также отключает автоматическое дифференцирование прямого режима.

Предупреждение

inference_mode НЕ переводит модель в режим оценки автоматически. Для корректного поведения при инференсе (например, отключения dropout и использования скользящих статистик при пакетной нормализации) необходимо явно перевести модель в режим оценки с помощью model.eval() в дополнение к использованию этого менеджера контекста.

Параметры:

mode (bool или function) – Либо логический флаг для включения или отключения режима инференса, либо функция 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
clone() [исходный код]

Создаёт копию этого класса

Тип возвращаемого значения:

inference_mode

© 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.inference_mode.html

Spec-Zone.ru

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