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 (Interaction[HeadRepresentation, RelationRepresentation, TailRepresentation]) – 基础交互。
base_kwargs (OptionalKwargs) – 用于实例化基础交互的关键字参数
clamp_score (tuple[float | None, float] | tuple[float, float | None] | None) – 是否将分数限制在一个固定区间内
注意
参数对
(base, base_kwargs)用于interaction_resolver解析器的解释及其使用方法在 https://class-resolver.readthedocs.io/en/latest/中给出。
属性摘要
暴露基础交互的实体形状。
暴露基础交互的关系形状。
方法总结
forward(h, r, t)计算给定头、关系和尾的广播表示的三元组得分。
属性文档
方法文档
- forward(h: HeadRepresentation, r: RelationRepresentation, t: TailRepresentation) Tensor[源代码]
计算给定头、关系和尾的广播表示的三元组得分。
一般来说,每个交互函数(类)对头、关系和尾表示都有一定的格式要求。这种格式由表示的数量和形状组成。
许多简单的交互函数,如
TransEInteraction,操作于单一表示上,然而也有像TransDInteraction这样的交互,它需要每个槽的两个表示,或者像PairREInteraction这样的交互,它需要两个关系表示,但分别只需要一个头实体和尾实体的表示。每个单独的表示都有一个形状。这可以是一个简单的\(d\)维向量,也可以包括矩阵,甚至是高阶张量。
此方法支持通用的批量计算,即每个表示可以有一个前面的批量维度。这些批量维度不一定需要完全相同,但它们需要是可广播的。关于广播规则的良好解释可以在NumPy的文档中找到。
另请参阅
Representations 提供了关于如何获取个体表示的不同方式的概述。
- Parameters:
h (HeadRepresentation) – 形状:
(*batch_dims, *dims)头部表示。r (RelationRepresentation) – 形状:
(*batch_dims, *dims)关系表示。t (TailRepresentation) – 形状:
(*batch_dims, *dims)尾部的表示。
- Returns:
形状: batch_dims 分数。
- Return type: