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()[исходный код] -
Создаёт копию этого класса
- Тип возвращаемого значения:
© 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