属性¶
- class torch.jit.Attribute(value, type)[源代码]¶
此方法是一个直通函数,返回 value,主要用于指示 TorchScript 编译器左侧表达式是具有 type 类型的类实例属性。请注意,torch.jit.Attribute 只能在 jit.ScriptModule 子类的 __init__ 方法中使用。
尽管 TorchScript 可以为大多数 Python 表达式推断正确的类型,但在某些情况下类型推断可能不正确,包括
像 [] 和 {} 这样的空容器,TorchScript 假设它们是 Tensor 的容器
可选类型,如 Optional[T],但分配了类型 T 的有效值,TorchScript 会假设它是类型 T 而不是 Optional[T]
在急切模式下,它只是一个直通函数,返回 value 且没有其他含义。
示例
import torch from typing import Dict class AttributeModule(torch.jit.ScriptModule): def __init__(self) -> None: super().__init__() self.foo = torch.jit.Attribute(0.1, float) # we should be able to use self.foo as a float here assert 0.0 < self.foo self.names_ages = torch.jit.Attribute({}, Dict[str, int]) self.names_ages["someone"] = 20 assert isinstance(self.names_ages["someone"], int) m = AttributeModule() # m will contain two attributes # 1. foo of type float # 2. names_ages of type Dict[str, int]
注意:现在建议使用类型注解而不是 torch.jit.Attribute
import torch from typing import Dict class AttributeModule(torch.nn.Module): names: Dict[str, int] def __init__(self) -> None: super().__init__() self.names = {} m = AttributeModule()
- 参数
value – 要分配给属性的初始值。
type – Python 类型
- 返回值
返回 value
- count(value, /)¶
返回 value 出现的次数。
- index(value, start=0, stop=9223372036854775807, /)¶
返回 value 的第一个索引。
如果 value 不存在,则引发 ValueError。
- type¶
字段编号 1 的别名
- value¶
字段编号 0 的别名