LCWA训练循环

class LCWATrainingLoop(*, target: None | str | int = None, **kwargs)[源代码]

基础类: TrainingLoop[tuple[Tensor, Tensor], tuple[Tensor, Tensor]]

一个基于局部封闭世界假设(LCWA)的训练循环。

在LCWA下,对于给定的真实训练三元组 \((h, r, t) \in \mathcal{T}_{train}\),所有三元组 \((h, r, t') \notin \mathcal{T}_{train}\) 都被假定为假。因此,训练方法使用1-n评分, 其中它有效地计算了所有三元组 \((h, r, t')\) 对于 \(t' \in \mathcal{E}\) 的分数,即共享 相同的(头实体,关系)对。

此实现略微泛化了原始的LCWA,并允许对关系或头实体做出相同的假设。特别是第二个,即预测关系,在视觉关系预测中经常遇到。

[ruffinelli2020] 在他们的工作中称 LCWA 为 KvsAll

初始化训练循环。

Parameters:
  • 目标 ( | str | int) – 目标列。用于头/关系/尾预测的{0, 1, 2}。默认为2,即尾预测。

  • kwargs – 传递给TrainingLoop.__init__的额外基于关键字的参数

Raises:

ValueError – 如果提供了无效的目标列

属性摘要

supports_slicing

属性文档

supports_slicing: ClassVar[bool] = True