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中可用的布尔值和整数等基本类型。- Parameters
obj – 要精炼类型的对象
target_type – 尝试将 obj 精炼到的类型
- Returns
- 如果obj成功地被精炼为目标类型,则为True,
否则为False,且没有新的类型精炼
- Return type
布尔
示例(使用
torch.jit.isinstance
进行类型细化): .. testcode:import torch from typing import Any, Dict, List class MyModule(torch.nn.Module): def __init__(self): super().__init__() def forward(self, input: Any): # 注意 Any 类型 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)