TuckER
- class TuckER(*, embedding_dim: int = 200, relation_dim: int | None = None, dropout_0: float = 0.3, dropout_1: float = 0.4, dropout_2: float = 0.5, apply_batch_normalization: bool = True, entity_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function xavier_normal_>, relation_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = <function xavier_normal_>, core_tensor_initializer: str | ~typing.Callable[[~torch.Tensor], ~torch.Tensor] | None = None, core_tensor_initializer_kwargs: ~collections.abc.Mapping[str, ~typing.Any] | None = None, **kwargs)[源代码]
基础类:
ERModel[Tensor,Tensor,Tensor]TuckEr 的实现来自 [balazevic2019]。
它通过\(d_e\)维向量表示实体,通过\(d_r\)维向量表示关系,存储在
Embedding中。然后使用有状态的TuckERInteraction来评分三元组。对于\(E\)个实体和\(R\)个关系,模型有\(Ed_e + Rd_r + d_e^2d_r\)个有效参数(忽略来自
torch.nn.BatchNorm1d层在TuckERInteraction中的额外参数)。另请参阅
初始化模型。
- Parameters:
embedding_dim (int) – (实体)嵌入维度
relation_dim (int | None) – 关系嵌入维度。默认为 embedding_dim。
dropout_0 (float) – 第一个dropout,参见公式
dropout_1 (float) – 第二个dropout,参见公式
dropout_2 (float) – 第三个dropout,参见公式
apply_batch_normalization (bool) – 是否应用批量归一化
entity_initializer (str | Callable[[Tensor], Tensor] | None) – 实体表示初始化器
relation_initializer (str | Callable[[Tensor], Tensor] | None) – 关系表示初始化器
core_tensor_initializer (str | Callable[[Tensor], Tensor] | None) – 核心张量初始化器
core_tensor_initializer_kwargs (Mapping[str, Any] | None) – 传递给核心张量初始化器的基于关键字的参数
kwargs – 传递给
ERModel.__init__()的额外基于关键字的参数
属性摘要
优化模型超参数的默认策略
默认损失函数类的默认参数
属性文档
- hpo_default: ClassVar[Mapping[str, Any]] = {'dropout_0': {'high': 0.5, 'low': 0.0, 'q': 0.1, 'type': <class 'float'>}, 'dropout_1': {'high': 0.5, 'low': 0.0, 'q': 0.1, 'type': <class 'float'>}, 'dropout_2': {'high': 0.5, 'low': 0.0, 'q': 0.1, 'type': <class 'float'>}, 'embedding_dim': {'high': 256, 'low': 16, 'q': 16, 'type': <class 'int'>}, 'relation_dim': {'high': 256, 'low': 16, 'q': 16, 'type': <class 'int'>}}
优化模型超参数的默认策略