消融
- 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]) – 单个或一组数据集规范。 数据集可以通过名称(引用单个内置数据集)或作为包含训练、验证和测试路径的字典来指定。
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中使用的关键字参数范围的映射。
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]
准备一组消融研究目录。
- 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]) – 单个或一组数据集规范。 数据集可以通过名称(引用单个内置数据集)或作为包含训练、验证和测试路径的字典来指定。
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中使用的关键字参数范围的映射。
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期间采样的每个训练模型是否应被保存。
- Returns:
输出目录和这些目录内的HPO配置路径的配对。
- Raises:
ValueError – 如果数据集未正确指定,即数据集不是str类型,或者不包含训练、测试和验证数据路径的字典。
- Return type: