EarlyStopper

class EarlyStopper(model: ~pykeen.models.base.Model, evaluator: ~pykeen.evaluation.evaluator.Evaluator, training_triples_factory: ~pykeen.triples.triples_factory.CoreTriplesFactory, evaluation_triples_factory: ~pykeen.triples.triples_factory.CoreTriplesFactory, evaluation_batch_size: int | None = None, evaluation_slice_size: int | None = None, frequency: int = 10, patience: int = 2, metric: str = 'hits_at_k', relative_delta: float = 0.01, results: list[float] = <factory>, larger_is_better: bool = True, result_tracker: ~pykeen.trackers.base.ResultTracker | None = None, result_callbacks: list[~typing.Callable[[~pykeen.stoppers.stopper.Stopper, int | float, int], None]] = <factory>, continue_callbacks: list[~typing.Callable[[~pykeen.stoppers.stopper.Stopper, int | float, int], None]] = <factory>, stopped_callbacks: list[~typing.Callable[[~pykeen.stoppers.stopper.Stopper, int | float, int], None]] = <factory>, stopped: bool = False, best_model_path: ~pathlib.Path | None = None, clean_up_checkpoint: bool = True, use_tqdm: bool = False, tqdm_kwargs: dict[str, ~typing.Any] = <factory>)[source]

基础类:Stopper

用于早期停止的装置。

初始化停止器。

Parameters:

属性摘要

best_epoch

返回最佳结果出现的时期。

best_metric

返回目前为止的最佳结果。

best_model_path

最佳模型权重的路径

clean_up_checkpoint

是否在终止后删除具有最佳模型权重的文件 注意:权重将在之前重新加载到模型中

evaluation_batch_size

评估批次的大小

evaluation_slice_size

评估批次的切片大小

frequency

模型在验证集上评估的周期数

larger_is_better

较大的值是否更好,还是较小的值更好

metric

使用的指标名称

number_results

计算存储在早期停止器中的结果数量。

patience

在没有改进的情况下,训练将停止的迭代次数(一次迭代可能对应多个时期)。

relative_delta

考虑为改进结果所需的最小相对改进

remaining_patience

返回剩余的耐心。

result_tracker

结果跟踪器

stopped

挡板是否曾经决定停止?

use_tqdm

是否使用tqdm进度条进行评估

方法总结

get_summary_dict()

获取一个摘要字典。

should_evaluate(epoch)

根据当前周期和内部频率决定是否应进行评估。

should_stop(epoch)

根据指标进行评估,并与过去的评估结果进行比较,以决定是否应停止训练。

属性文档

best_epoch

返回最佳结果出现的时期。

best_metric

返回目前为止的最佳结果。

best_model_path: Path | None = None

最佳模型权重的路径

clean_up_checkpoint: bool = True

是否在终止后删除具有最佳模型权重的文件 注意:权重将在之前重新加载到模型中

evaluation_batch_size: int | None = None

评估批次的大小

evaluation_slice_size: int | None = None

评估批次的切片大小

frequency: int = 10

模型在验证集上评估的周期数

larger_is_better: bool = True

较大的值是否更好,还是较小的值更好

metric: str = 'hits_at_k'

使用的指标名称

number_results

计算存储在早期停止器中的结果数量。

patience: int = 2

迭代次数(一次迭代可能对应多个时期) 在没有改进的情况下,训练将停止。

relative_delta: float = 0.01

考虑为改进结果所需的最小相对改进

remaining_patience

返回剩余的耐心。

result_tracker: ResultTracker | None = None

结果跟踪器

stopped: bool = False

挡板是否曾经决定停止?

use_tqdm: bool = False

是否使用tqdm进度条进行评估

方法文档

get_summary_dict() Mapping[str, Any][source]

获取一个摘要字典。

Return type:

Mapping[str, Any]

should_evaluate(epoch: int) bool[source]

根据当前周期和内部频率决定是否应进行评估。

Parameters:

epoch (int)

Return type:

bool

should_stop(epoch: int) bool[source]

根据指标进行评估,并与过去的评估结果进行比较,以决定是否应停止训练。

Parameters:

epoch (int)

Return type:

bool