消融

ablation_pipeline(datasets: str | SplitToPathDict | Sequence[str | SplitToPathDict], directory: str | Path, models: str | list[str], losses: str | list[str], optimizers: str | list[str], training_loops: str | list[str], *, epochs: int | None = None, create_inverse_triples: bool | list[bool] = False, regularizers: None | str | list[str] = None, negative_sampler: str | None = None, evaluator: str | None = None, stopper: str | None = 'NopStopper', model_to_model_kwargs: Mapping[str, Mapping[str, Any]] | None = None, model_to_model_kwargs_ranges: Mapping[str, Mapping[str, Any]] | None = None, model_to_loss_to_loss_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_loss_to_loss_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_optimizer_to_optimizer_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_optimizer_to_optimizer_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_negative_sampler_to_negative_sampler_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_negative_sampler_to_negative_sampler_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_training_loop_to_training_loop_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_training_loop_to_training_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_training_loop_to_training_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_regularizer_to_regularizer_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_regularizer_to_regularizer_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, evaluator_kwargs: Mapping[str, Any] | None = None, evaluation_kwargs: Mapping[str, Any] | None = None, stopper_kwargs: Mapping[str, Any] | None = None, n_trials: int | None = 5, timeout: int | None = 3600, metric: str | None = 'hits@10', direction: str | None = 'maximize', sampler: str | None = 'random', pruner: str | None = 'nop', metadata: Mapping | None = None, save_artifacts: bool = True, move_to_cpu: bool = True, dry_run: bool = False, best_replicates: int | None = None, discard_replicates: bool = False, create_unique_subdir: bool = False)[source]

运行消融研究。

Parameters:
  • 数据集 (str | SplitToPathDict | Sequence[str | SplitToPathDict]) – 单个或一组数据集规范。 数据集可以通过名称(引用单个内置数据集)或作为包含训练、验证和测试路径的字典来指定。

  • 目录 (str | Path) – 实验工件将被保存的目录。

  • 模型 (str | list[str]) – 一个模型名称或模型名称列表。

  • losses (str | list[str]) – 一个损失函数名称或损失函数名称列表。

  • optimizers (str | list[str]) – 一个优化器名称或优化器名称列表。

  • training_loops (str | list[str]) – 一个训练循环名称或训练循环名称列表。

  • epochs (int | None) – 一种快速设置训练参数中num_epochs的方法。

  • create_inverse_triples (bool | list[bool]) – 可以是一个布尔值用于单个条目,也可以是一个布尔值列表。

  • regularizers (None | str | list[str]) – 正则化器的名称、正则化器名称的列表,如果不需要正则化器则为 None。

  • negative_sampler (str | None) – 一个负采样器名称,正则化器名称列表,或者如果不需要负采样器则为None。负采样仅与pykeen.training.SLCWATrainingLoop结合使用。

  • evaluator (str | None) – 要使用的评估器的名称。默认为基于排名的评估器。

  • stopper (str | None) – 要使用的停止器的名称。默认为NopStopper,它没有定义停止标准。

  • model_to_model_kwargs (Mapping[str, Mapping[str, Any]] | None) – 从模型名称到该模型实例化的默认关键字参数字典的映射。

  • model_to_model_kwargs_ranges (Mapping[str, Mapping[str, Any]] | None) – 从模型名称到该模型的关键字参数范围的映射,用于HPO。

  • model_to_loss_to_loss_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到损失名称的映射,再到该损失函数实例化的默认关键字参数的映射。这很有用,因为对于一些损失函数,如pykeen.losses.MarginRankingLoss,具有超参数。

  • model_to_loss_to_loss_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到损失名称的映射,再到用于HPO的该损失的关键字参数范围的映射。

  • model_to_optimizer_to_optimizer_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到优化器名称的映射,再到该优化器实例化的默认关键字参数的映射。这很有用,因为优化器具有诸如学习率之类的超参数。

  • model_to_optimizer_to_optimizer_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到优化器名称的映射,再到用于HPO的该优化器的关键字参数范围的映射。

  • model_to_regularizer_to_regularizer_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到正则化器名称的映射,再到该正则化器实例化的默认关键字参数的映射。这很有用,因为优化器具有诸如正则化权重之类的超参数。

  • model_to_regularizer_to_regularizer_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到正则化器名称的映射,再到用于HPO的正则化器的关键字参数范围的映射。

  • model_to_negative_sampler_to_negative_sampler_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到负采样器名称的映射,再到该负采样器实例化的默认关键字参数的映射。 这很有用,因为负采样器具有超参数,例如应为每个正训练示例生成的负样本数量。

  • model_to_negative_sampler_to_negative_sampler_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到负采样器名称的映射,再到该负采样器在HPO中使用的关键字参数范围的映射。

  • model_to_training_loop_to_training_loop_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到训练循环名称的映射,再到训练循环的默认关键字参数的映射。

  • model_to_training_loop_to_training_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到训练器名称的映射,再到训练过程的默认关键字参数的映射。这很有用,因为你可以设置超参数,例如训练轮数和批量大小。

  • model_to_training_loop_to_training_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到训练器名称的映射,再到该训练器在HPO中使用的关键字参数范围的映射。

  • evaluator_kwargs (Mapping[str, Any] | None) – 传递给评估器的关键字参数。

  • evaluation_kwargs (Mapping[str, Any] | None) – 评估期间传递的关键字参数。

  • stopper_kwargs (Mapping[str, Any] | None) – 传递给stopper的关键字参数。

  • n_trials (int | None) – HPO试验的次数。

  • timeout (int | None) – 消融研究将在该时间(秒)后终止。

  • metric (str | None) – 在HPO期间优化的指标。

  • direction (str | None) – 定义在HPO期间是“最大化”还是“最小化”指标。

  • sampler (str | None) – HPO采样器,默认为随机搜索。

  • pruner (str | None) – 定义修剪试验的方法。默认情况下不使用修剪,即pruner设置为‘Nopruner’。

  • metadata (Mapping | None) – 元数据参数的映射,例如消融研究的名称。

  • save_artifacts (bool) – 定义在HPO期间采样的每个训练模型是否应被保存。

  • move_to_cpu (bool) – 定义是否应将最佳模型的副本移动到CPU。

  • dry_run (bool) – 定义是否仅创建单个实验的配置而不运行它们。

  • best_replicates (int | None) – 定义最终模型应基于最佳超参数重新训练和评估的次数,以便衡量性能的方差。

  • discard_replicates (bool) – 定义是否在训练和评估后丢弃最佳模型。

  • create_unique_subdir (bool) – 定义是否应为实验工件创建一个唯一的子目录。子目录名称由当前日期和一个唯一ID定义。

prepare_ablation_from_config(config: Mapping[str, Any], directory: str | Path, save_artifacts: bool) list[tuple[Path, Path]][source]

准备一组消融研究目录。

Parameters:
  • config (Mapping[str, Any]) – 定义消融研究的字典。

  • 目录 (str | Path) – 实验工件(包括消融配置)将被保存的目录。

  • save_artifacts (bool) – 定义是否应创建在HPO期间采样的训练模型的输出目录。

Returns:

输出目录和这些目录内的HPO配置路径的配对

Return type:

list[tuple[Path, Path]]

prepare_ablation(datasets: str | SplitToPathDict | Sequence[str | SplitToPathDict], models: str | Sequence[str], losses: str | Sequence[str], optimizers: str | Sequence[str], training_loops: str | Sequence[str], directory: str | Path, *, create_inverse_triples: bool | Sequence[bool] = False, regularizers: None | str | Sequence[None | str] = None, epochs: int | None = None, negative_sampler: str | None = None, evaluator: str | None = None, model_to_model_kwargs: Mapping[str, Mapping[str, Any]] | None = None, model_to_model_kwargs_ranges: Mapping[str, Mapping[str, Any]] | None = None, model_to_loss_to_loss_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_loss_to_loss_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_optimizer_to_optimizer_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_optimizer_to_optimizer_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_training_loop_to_training_loop_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_neg_sampler_to_neg_sampler_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_neg_sampler_to_neg_sampler_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_training_loop_to_training_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_training_loop_to_training_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_regularizer_to_regularizer_kwargs: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, model_to_regularizer_to_regularizer_kwargs_ranges: Mapping[str, Mapping[str, Mapping[str, Any]]] | None = None, n_trials: int | None = 5, timeout: int | None = 3600, metric: str | None = 'hits@10', direction: str | None = 'maximize', sampler: str | None = 'random', pruner: str | None = 'nop', evaluator_kwargs: Mapping[str, Any] | None = None, evaluation_kwargs: Mapping[str, Any] | None = None, stopper: str | None = 'NopStopper', stopper_kwargs: Mapping[str, Any] | None = None, metadata: Mapping | None = None, save_artifacts: bool = True) list[tuple[Path, Path]][源代码]

准备一个消融目录。

Parameters:
  • 数据集 (str | SplitToPathDict | Sequence[str | SplitToPathDict]) – 单个或一组数据集规范。 数据集可以通过名称(引用单个内置数据集)或作为包含训练、验证和测试路径的字典来指定。

  • 模型 (str | Sequence[str]) – 一个模型名称或模型名称列表。

  • losses (str | Sequence[str]) – 一个损失函数名称或损失函数名称列表。

  • optimizers (str | Sequence[str]) – 一个优化器名称或优化器名称列表。

  • training_loops (str | Sequence[str]) – 一个训练循环名称或训练循环名称列表。

  • epochs (int | None) – 一种快速设置训练参数中num_epochs的方法。

  • create_inverse_triples (bool | Sequence[bool]) – 可以是一个布尔值用于单个条目,也可以是一个布尔值列表。

  • regularizers (None | str | Sequence[None | str]) – 正则化器的名称、正则化器名称的列表,如果不需要正则化器则为 None。

  • negative_sampler (str | None) – 一个负采样器名称,正则化器名称列表,或者如果不需要负采样器则为None。负采样仅在与pykeen.training.sclwa训练循环结合使用时使用。

  • evaluator (str | None) – 要使用的评估器的名称。默认为基于排名的评估器。

  • stopper (str | None) – 要使用的停止器的名称。默认为NopStopper,它没有定义停止标准。

  • model_to_model_kwargs (Mapping[str, Mapping[str, Any]] | None) – 从模型名称到该模型实例化的默认关键字参数字典的映射。

  • model_to_model_kwargs_ranges (Mapping[str, Mapping[str, Any]] | None) – 从模型名称到该模型的关键字参数范围的映射,用于HPO。

  • model_to_loss_to_loss_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到损失名称的映射,再到该损失函数实例化的默认关键字参数的映射。这很有用,因为对于一些损失函数,例如pykeen.losses.MarginRankingLoss,具有超参数。

  • model_to_loss_to_loss_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到损失名称的映射,再到用于HPO的该损失的关键字参数范围的映射。

  • model_to_optimizer_to_optimizer_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到优化器名称的映射,再到该优化器实例化的默认关键字参数的映射。这很有用,因为优化器具有诸如学习率之类的超参数。

  • model_to_optimizer_to_optimizer_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到优化器名称的映射,再到用于HPO的该优化器的关键字参数范围的映射。

  • model_to_regularizer_to_regularizer_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到正则化器名称的映射,再到该正则化器实例化的默认关键字参数的映射。这很有用,因为优化器具有诸如正则化权重之类的超参数。

  • model_to_regularizer_to_regularizer_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到正则化器名称的映射,再到用于HPO的正则化器的关键字参数范围的映射。

  • model_to_neg_sampler_to_neg_sampler_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到负采样器名称的映射,再到该负采样器实例化的默认关键字参数的映射。 这很有用,因为负采样器具有超参数,例如应为每个正训练示例生成的负样本数量。

  • model_to_neg_sampler_to_neg_sampler_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到负采样器名称的映射,再到用于HPO的该负采样器的关键字参数范围的映射。

  • model_to_training_loop_to_training_loop_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到训练循环名称的映射,再到训练循环的默认关键字参数的映射。

  • model_to_training_loop_to_training_kwargs (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到训练器名称的映射,再到训练过程的默认关键字参数的映射。这很有用,因为你可以设置超参数,例如训练轮数和批量大小。

  • model_to_training_loop_to_training_kwargs_ranges (Mapping[str, Mapping[str, Mapping[str, Any]]] | None) – 从模型名称到训练器名称的映射,再到该训练器在HPO中使用的关键字参数范围的映射。

  • evaluator_kwargs (Mapping[str, Any] | None) – 传递给评估器的关键字参数。

  • evaluation_kwargs (Mapping[str, Any] | None) – 评估期间传递的关键字参数。

  • stopper_kwargs (Mapping[str, Any] | None) – 传递给stopper的关键字参数。

  • n_trials (int | None) – HPO试验的次数。

  • timeout (int | None) – 消融研究将在该时间(秒)后终止。

  • metric (str | None) – 在HPO期间优化的指标。

  • direction (str | None) – 定义在HPO期间是“最大化”还是“最小化”指标。

  • sampler (str | None) – HPO采样器,默认为随机搜索。

  • pruner (str | None) – 定义修剪试验的方法。默认情况下不使用修剪,即pruner设置为‘Nopruner’。

  • metadata (Mapping | None) – 元数据参数的映射,例如消融研究的名称。

  • 目录 (str | Path) – 实验工件将被保存的目录。

  • save_artifacts (bool) – 定义在HPO期间采样的每个训练模型是否应被保存。

Returns:

输出目录和这些目录内的HPO配置路径的配对。

Raises:

ValueError – 如果数据集未正确指定,即数据集不是str类型,或者不包含训练、测试和验证数据路径的字典。

Return type:

list[tuple[Path, Path]]