评价此页

torch.jit.unused#

torch.jit.unused(fn)[源代码]#

此装饰器指示编译器忽略某个函数或方法,并将其替换为抛出异常。这使得您可以在模型中保留尚未兼容TorchScript的代码,并且仍然可以导出您的模型。

示例(在方法上使用 @torch.jit.unused

import torch
import torch.nn as nn


class MyModule(nn.Module):
    def __init__(self, use_memory_efficient):
        super().__init__()
        self.use_memory_efficient = use_memory_efficient

    @torch.jit.unused
    def memory_efficient(self, x):
        import pdb

        pdb.set_trace()
        return x + 10

    def forward(self, x):
        # Use not-yet-scriptable memory efficient mode
        if self.use_memory_efficient:
            return self.memory_efficient(x)
        else:
            return x + 10


m = torch.jit.script(MyModule(use_memory_efficient=False))
m.save("m.pt")

m = torch.jit.script(MyModule(use_memory_efficient=True))
# exception raised
m(torch.rand(100))
返回类型

Callable[[~_P], _R]