torch.jit.isinstance¶
- torch.jit.isinstance(obj, target_type)[源代码]¶
在 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,没有新的类型细化
- 返回类型
bool
示例(使用
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)