ClampedInteraction

class ClampedInteraction(base: str | Interaction[HeadRepresentation, RelationRepresentation, TailRepresentation] | type[Interaction[HeadRepresentation, RelationRepresentation, TailRepresentation]], base_kwargs: Mapping[str, Any] | None = None, clamp_score: tuple[float | None, float] | tuple[float, float | None] | float | None = None)[source]

基础:Interaction[HeadRepresentation, RelationRepresentation, TailRepresentation]

一个适配器,用于将分数限制在最小值或最大值。

警告

使用的torch.clamp()函数对于低于最小值或高于最大值的分数具有零梯度。 因此,它加剧了基于梯度的优化。

初始化交互模块。

Parameters:

注意

参数对 (base, base_kwargs) 用于 interaction_resolver

解析器的解释及其使用方法在 https://class-resolver.readthedocs.io/en/latest/中给出。

属性摘要

entity_shape

暴露基础交互的实体形状。

relation_shape

暴露基础交互的关系形状。

方法总结

forward(h, r, t)

计算给定头、关系和尾的广播表示的三元组得分。

属性文档

entity_shape: Sequence[str]

实体表示的符号形状

relation_shape: Sequence[str]

关系表示的符号形状

方法文档

forward(h: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation) Tensor[源代码]

计算给定头、关系和尾的广播表示的三元组得分。

一般来说,每个交互函数(类)对头、关系和尾表示都有一定的格式要求。这种格式由表示的数量和形状组成。

许多简单的交互函数,如TransEInteraction,操作于单一表示上,然而也有像TransDInteraction这样的交互,它需要每个槽的两个表示,或者像PairREInteraction这样的交互,它需要两个关系表示,但分别只需要一个头实体和尾实体的表示。

每个单独的表示都有一个形状。这可以是一个简单的\(d\)维向量,也可以包括矩阵,甚至是高阶张量。

此方法支持通用的批量计算,即每个表示可以有一个前面的批量维度。这些批量维度不一定需要完全相同,但它们需要是可广播的。关于广播规则的良好解释可以在NumPy的文档中找到。

另请参阅

  • Representations 提供了关于如何获取个体表示的不同方式的概述。

Parameters:
Returns:

形状: batch_dims 分数。

Return type:

Tensor