torch.jit.isinstance#
- torch.jit.isinstance(obj, target_type)[source]#
在 TorchScript 中提供容器型別細化。
它可以細化 List、Dict、Tuple 和 Optional 型別的引數化容器。例如
List[str]、Dict[str, List[torch.Tensor]]、Optional[Tuple[int,str,int]]。它還可以細化 TorchScript 中可用的基本型別,如布林值和整數。- 引數
obj – 要細化型別的物件
target_type – 嘗試細化 obj 的目標型別
- 返回
- 如果 obj 已成功細化為 target_type 的型別,則返回 True,
否則返回 False,且沒有新的型別細化。
- 返回型別
布林值
示例(使用
torch.jit.isinstance進行型別細化): .. testcodeimport torch from typing import Any, Dict, List class MyModule(torch.nn.Module): def __init__(self) -> None: super().__init__() def forward(self, input: Any): # note the Any type if torch.jit.isinstance(input, List[torch.Tensor]): for t in input: y = t.clamp(0, 0.5) elif torch.jit.isinstance(input, Dict[str, str]): for val in input.values(): print(val) m = torch.jit.script(MyModule()) x = [torch.rand(3,3), torch.rand(4,3)] m(x) y = {"key1":"val1","key2":"val2"} m(y)