管道
- pipeline(*, dataset: None | str | Dataset | type[Dataset] = None, dataset_kwargs: Mapping[str, Any] | None = None, training: str | CoreTriplesFactory | None = None, testing: str | CoreTriplesFactory | None = None, validation: str | CoreTriplesFactory | None = None, evaluation_entity_whitelist: Collection[str] | None = None, evaluation_relation_whitelist: Collection[str] | None = None, model: None | str | Model | type[Model] = None, model_kwargs: Mapping[str, Any] | None = None, interaction: None | str | Interaction | type[Interaction] = None, interaction_kwargs: Mapping[str, Any] | None = None, dimensions: None | int | Mapping[str, int] = None, loss: str | type[Loss] | None = None, loss_kwargs: Mapping[str, Any] | None = None, regularizer: str | type[Regularizer] | None = None, regularizer_kwargs: Mapping[str, Any] | None = None, optimizer: str | type[Optimizer] | None = None, optimizer_kwargs: Mapping[str, Any] | None = None, clear_optimizer: bool = True, lr_scheduler: str | type[LRScheduler] | None = None, lr_scheduler_kwargs: Mapping[str, Any] | None = None, training_loop: str | type[TrainingLoop] | None = None, training_loop_kwargs: Mapping[str, Any] | None = None, negative_sampler: str | type[NegativeSampler] | None = None, negative_sampler_kwargs: Mapping[str, Any] | None = None, epochs: int | None = None, training_kwargs: Mapping[str, Any] | None = None, stopper: str | type[Stopper] | None = None, stopper_kwargs: Mapping[str, Any] | None = None, evaluator: str | type[Evaluator] | None = None, evaluator_kwargs: Mapping[str, Any] | None = None, evaluation_kwargs: Mapping[str, Any] | None = None, result_tracker: str | ResultTracker | type[ResultTracker] | None | Sequence[str | ResultTracker | type[ResultTracker] | None] = None, result_tracker_kwargs: Mapping[str, Any] | None | Sequence[Mapping[str, Any] | None] = None, metadata: dict[str, Any] | None = None, device: str | device | None = None, random_seed: int | None = None, use_testing_data: bool = True, evaluation_fallback: bool = False, filter_validation_when_testing: bool = True, use_tqdm: bool | None = None) PipelineResult[source]
训练和评估模型。
- Parameters:
dataset (None | str | Dataset | type[Dataset]) – 数据集的名称(
pykeen.datasets.dataset_resolver的键)或pykeen.datasets.Dataset实例。或者,可以指定训练三元组工厂(training)、测试三元组工厂(testing)和验证三元组工厂(validation;可选)。dataset_kwargs (Mapping[str, Any] | None) – 实例化时传递给数据集的关键字参数
训练 (str | CoreTriplesFactory | None) – 一个包含训练实例的三元组工厂,或者如果未指定数据集,则为训练文件的路径
测试 (str | CoreTriplesFactory | None) – 如果未指定数据集,则为包含训练实例的三元组工厂或测试文件的路径
验证 (str | CoreTriplesFactory | None) – 如果未指定数据集,则包含验证实例的三元组工厂或验证文件的路径
evaluation_entity_whitelist (Collection[str] | None) – 可选的评估限制,仅包含这些实体的三元组。如果下游任务仅对某些实体感兴趣,但与其他实体的关系模式提高了实体嵌入质量,则此选项非常有用。
evaluation_relation_whitelist (Collection[str] | None) – 可选的评估限制,仅包含这些关系的三元组。如果下游任务仅对某些关系感兴趣,但与其他关系的关系模式提高了实体嵌入质量,则此选项非常有用。
model (None | str | Model | type[Model]) – 模型的名称,
pykeen.models.Model的子类,或者是pykeen.models.Model的实例。如果使用了interaction关键字,则可以设置为None。interaction (None | str | Interaction | type[Interaction]) – 交互类的名称,
pykeen.nn.modules.Interaction的子类, 或pykeen.nn.modules.Interaction的实例。当存在模型时不能给出。interaction_kwargs (Mapping[str, Any] | None) – 在实例化交互类时传递的关键字参数。仅与
interaction一起使用。dimensions (None | int | Mapping[str, int]) – 分配给交互嵌入的维度。仅与
interaction一起使用。regularizer (str | type[Regularizer] | None) – 正则化器的名称或正则化器类。
regularizer_kwargs (Mapping[str, Any] | None) – 在实例化时传递给正则化器的关键字参数
optimizer (str | type[Optimizer] | None) – 优化器的名称或优化器类。默认为
torch.optim.Adagrad。optimizer_kwargs (Mapping[str, Any] | None) – 在实例化时传递给优化器的关键字参数
clear_optimizer (bool) – 是否在训练后删除优化器实例。由于优化器可能会因为例如Adam中的动量等额外消耗内存,这是默认选项。如果你想继续训练,你应该将其设置为False,否则优化器的内部参数将会丢失。
lr_scheduler (str | type[LRScheduler] | None) – lr_scheduler的名称或lr_scheduler类。 默认为
torch.optim.lr_scheduler.ExponentialLR。lr_scheduler_kwargs (Mapping[str, Any] | None) – 在实例化时传递给 lr_scheduler 的关键字参数
training_loop (str | type[TrainingLoop] | None) – 训练循环的训练方法名称(
'slcwa'或'lcwa')或训练循环类。 默认为pykeen.training.SLCWATrainingLoop。training_loop_kwargs (Mapping[str, Any] | None) – 在实例化时传递给训练循环的关键字参数
negative_sampler (str | type[NegativeSampler] | None) – 负采样器的名称(
'basic'或'bernoulli')或负采样器类。 仅在训练时使用 sLCWA 时允许。 默认为pykeen.sampling.BasicNegativeSampler。negative_sampler_kwargs (Mapping[str, Any] | None) – 在实例化时传递给负采样器类的关键字参数
epochs (int | None) – 用于设置
training_kwargs字典中num_epochs键的快捷方式。training_kwargs (Mapping[str, Any] | None) – 在调用时传递给训练循环的train函数的关键字参数
stopper (str | type[Stopper] | None) – 使用何种停止方式。默认为不停止,可以设置为‘early’。
stopper_kwargs (Mapping[str, Any] | None) – 在实例化时传递给stopper的关键字参数。
evaluator (str | type[Evaluator] | None) – 评估器的名称或评估器类。默认为
pykeen.evaluation.RankBasedEvaluator。evaluator_kwargs (Mapping[str, Any] | None) – 在实例化时传递给评估器的关键字参数
evaluation_kwargs (Mapping[str, Any] | None) – 在调用时传递给评估器的evaluate函数的关键字参数
result_tracker (str | ResultTracker | type[ResultTracker] | None | Sequence[str | ResultTracker | type[ResultTracker] | None]) – 可以是无(将导致使用Python结果跟踪器),单个跟踪器(作为类、实例或类名字符串),或跟踪器列表(作为类、实例或类名字符串)
result_tracker_kwargs (Mapping[str, Any] | None | Sequence[Mapping[str, Any] | None]) – 可以是无(将使用所有默认值)、单个字典(将用于所有跟踪器),或者与结果跟踪器长度相同的字典列表
use_testing_data (bool) – 如果为真,则使用测试三元组。否则,使用验证三元组。默认为真 - 使用测试三元组。
device (str | device | None) – 运行的设备或设备名称。如果没有给出,设备将通过
pykeen.utils.resolve_device()查找。random_seed (int | None) – 使用的随机种子。如果没有指定,将在运行任何代码之前分配一个以确保可重复性。在返回的
PipelineResult实例中,可以通过PipelineResult.random_seed访问它。evaluation_fallback (bool) – 如果为真,当使用GPU进行评估失败时,它将回退到使用较小的批量大小,或者在最后的情况下在CPU上进行评估,即使最小的批量大小对于GPU来说也太大。
filter_validation_when_testing (bool) – 如果为真,在评估测试数据集时,验证三元组会被添加到已知正三元组集合中,这些三元组在执行过滤评估时会被过滤掉,遵循[bordes2013]描述的方法。只有在使用管道训练单个模型并使用测试集进行评估,但完全不使用验证集进行优化的情况下,才应明确将其设置为false。这是一个非常不典型的场景,因此默认情况下设置为true,以促进与之前出版物的可比性。
use_tqdm (bool | None) – 全局设置是否使用tqdm进度条。通常更有用将其设置为false,因为训练循环和评估默认情况下已启用。
- Returns:
一个管道结果包。
- Return type: