正则化器

PyKEEN中的正则化。

LpRegularizer(*[, weight, apply_only_once, ...])

一个基于L_p范数的简单正则化器。

NoRegularizer([weight, apply_only_once, ...])

一个不执行任何正则化的正则化器。

CombinedRegularizer(regularizers[, total_weight])

正则化器的凸组合。

PowerSumRegularizer(*[, weight, ...])

一个基于x^p的简单正则化器。

OrthogonalityRegularizer(*[, 权重, ...])

来自[wang2014]的软正交约束的正则化器。

NormLimitRegularizer(*[, weight, ...])

一个正则化器,它对最大范数制定了一个软约束。

变量

regularizer_resolver

正则化器的解析器

类继承图

Inheritance diagram of pykeen.regularizers.LpRegularizer, pykeen.regularizers.NoRegularizer, pykeen.regularizers.CombinedRegularizer, pykeen.regularizers.PowerSumRegularizer, pykeen.regularizers.OrthogonalityRegularizer, pykeen.regularizers.NormLimitRegularizer

基础类

class Regularizer(weight: float = 1.0, apply_only_once: bool = False, parameters: Iterable[Parameter] | None = None)[source]

所有正则化器的基类。

实例化正则化器。

Parameters:
  • weight (Tensor) – 正则化的相对权重

  • apply_only_once (bool) – 重置后是否应多次应用正则化?

  • 参数 (可迭代[nn.Parameter] | ) – 要跟踪的特定参数。如果未提供,则期望您的模型自动委托给 update() 函数。

add_parameter(parameter: Parameter) None[source]

添加一个正则化参数。

Parameters:

参数 (Parameter)

Return type:

apply_only_once: bool

正则化是否只应用一次?这用于ConvKB,默认值为False。

abstract forward(x: Tensor) Tensor[source]

计算一个张量的正则化项。

Parameters:

x (Tensor)

Return type:

Tensor

classmethod get_normalized_name() str[source]

获取正则化器类的规范化名称。

Return type:

str

hpo_default: ClassVar[Mapping[str, Any]] = {'weight': {'high': 1.0, 'low': 0.01, 'scale': 'log', 'type': <class 'float'>}}

优化正则化器超参数的默认策略

pop_regularization_term() Tensor[源代码]

返回加权正则化项,并在之后重置正则化。

Return type:

Tensor

post_parameter_update()[来源]

重置正则化器的项。

警告

通常,您希望仅使用正则化项一次,通过 pop_regularization_term() 计算梯度。在这种情况下,应该不需要手动调用此方法。

regularization_term: FloatTensor

当前的正则化项(一个标量)

reset() None[source]

将正则化项重置为零。

Return type:

property term: Tensor

返回加权正则化项。

update(*tensors: Tensor) None[source]

根据传递的张量更新正则化项。

Parameters:

张量 (Tensor)

Return type:

updated: bool

自上次重置以来,此正则化器是否已更新?

weight: FloatTensor

整体正则化权重