torch.jit.ignore
-
torch.jit.ignore(drop=False, **kwargs)[source] -
Этот декоратор указывает компилятору, что функция или метод должны быть проигнорированы и оставлены как функция Python. Это позволяет вам оставлять код в вашей модели, который ещё не совместим с TorchScript. Если вызывается из TorchScript, игнорируемые функции будут перенаправлять вызов в интерпретатор Python. Модели с игнорируемыми функциями не могут быть экспортированы; используйте
@torch.jit.unusedвместо этого.Пример (использование
@torch.jit.ignoreна методе):import torch import torch.nn as nn class MyModule(nn.Module): @torch.jit.ignore def debugger(self, x): import pdb pdb.set_trace() def forward(self, x): x += 10 # The compiler would normally try to compile `debugger`, # but since it is `@ignore`d, it will be left as a call # to Python self.debugger(x) return x m = torch.jit.script(MyModule()) # Error! The call `debugger` cannot be saved since it calls into Python m.save("m.pt")Пример (использование
@torch.jit.ignore(drop=True)на методе):import torch import torch.nn as nn class MyModule(nn.Module): @torch.jit.ignore(drop=True) def training_method(self, x): import pdb pdb.set_trace() def forward(self, x): if self.training: self.training_method(x) return x m = torch.jit.script(MyModule()) # This is OK since `training_method` is not saved, the call is replaced # with a `raise`. m.save("m.pt")
© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.jit.ignore.html