PipelineResult
- class PipelineResult(random_seed: int, model: ~pykeen.models.base.Model, training: ~pykeen.triples.triples_factory.CoreTriplesFactory, training_loop: ~pykeen.training.training_loop.TrainingLoop, losses: list[float], metric_results: ~pykeen.evaluation.evaluator.MetricResults, train_seconds: float, evaluate_seconds: float, stopper: ~pykeen.stoppers.stopper.Stopper | None = None, configuration: ~collections.abc.Mapping[str, ~typing.Any] = <factory>, metadata: ~collections.abc.MutableMapping[str, ~typing.Any] = <factory>, version: str = <factory>, git_hash: str = <factory>)[source]
基础:
Result一个包含运行
pykeen.pipeline.pipeline()结果的数据类。属性摘要
早期停止器
实验的标题。
方法总结
get_metric(key)从指标结果对象中获取给定的指标。
plot(**kwargs)绘制所有图表。
plot_early_stopping(**kwargs)绘制早停期间的评估结果。
plot_er(**kwargs)在2D中绘制简化的实体和关系向量。
plot_losses(**kwargs)绘制每个时期的损失。
save_model(路径)使用
torch.save()将训练好的模型保存到指定路径。save_to_directory(directory, *[, ...])保存给定目录中的所有工件。
save_to_ftp(directory, ftp)将所有工件保存到FTP服务器中的指定目录。
save_to_s3(directory, bucket[, s3])将所有工件保存到S3存储桶中的指定目录。
属性文档
- Parameters:
random_seed (int)
模型 (Model)
训练 (CoreTriplesFactory)
training_loop (TrainingLoop)
metric_results (MetricResults)
train_seconds (float)
evaluate_seconds (float)
stopper (Stopper | None)
元数据 (MutableMapping[str, Any])
版本 (str)
git_hash (str)
- title
实验的标题。
方法文档
- plot_early_stopping(**kwargs)[source]
绘制早停期间的评估结果。
- Parameters:
kwargs – 传递给
pykeen.pipeline.plot_utils.plot_early_stopping()的关键字参数- Returns:
轴
- plot_er(**kwargs)[源代码]
在2D中绘制简化的实体和关系向量。
- Parameters:
kwargs – 传递给
pykeen.pipeline.plot_utils.plot_er()的关键字参数- Returns:
轴
警告
在同一图表上绘制关系和实体仅对像TransE这样的平移距离模型有意义。
- plot_losses(**kwargs)[source]
绘制每个时期的损失。
- Parameters:
kwargs – 传递给
pykeen.pipeline.plot_utils.plot_losses()的关键字参数。- Returns:
轴
- save_to_directory(directory: str | Path, *, save_metadata: bool = True, save_replicates: bool = True, save_training: bool = True, **_kwargs) None[source]
保存给定目录中的所有工件。
序列化格式如下所示
directory/ results.json metadata.json trained_model.pkl training_triples/
除了第一个组件外,其他组件都是可选的,并且可以禁用,例如在超参数调优期间节省磁盘空间。trained_model.pkl 是通过
torch.save()保存的完整模型,因此可以通过torch.load()加载,参见 torch 的序列化文档。training_triples 包含训练三元组工厂,包括标签到 ID 的映射(如果使用)。它已通过pykeen.triples.CoreTriplesFactory.to_path_binary()保存,并且可以通过pykeen.triples.CoreTriplesFactory.from_path_binary()重新加载。
- save_to_ftp(directory: str, ftp: FTP) None[来源]
将所有工件保存到FTP服务器中的指定目录。
以下代码将训练一个模型并使用Python内置的
ftplib.FTP将其上传到FTP:import ftplib from pykeen.pipeline import pipeline directory = 'test/test' pipeline_result = pipeline( model='TransE', dataset='Kinships', ) with ftplib.FTP(host='0.0.0.0', user='user', passwd='12345') as ftp: pipeline_result.save_to_ftp(directory, ftp)
如果你想在自己的本地服务器上尝试这个,可以基于Giampaolo Rodola的优秀库pyftpdlib中的示例运行这段代码。
import os from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer authorizer = DummyAuthorizer() authorizer.add_user("user", "12345", homedir=os.path.expanduser('~/ftp'), perm="elradfmwMT") handler = FTPHandler handler.authorizer = authorizer address = '0.0.0.0', 21 server = FTPServer(address, handler) server.serve_forever()
- save_to_s3(directory: str, bucket: str, s3=None) None[source]
将所有工件保存到S3存储桶中的指定目录。
- Parameters:
目录 (str) – S3 存储桶中的目录
bucket (str) – S3存储桶的名称
s3 – 来自
boto3.client()的客户端,如果已经实例化
- Return type:
无
注意
需要设置
~/.aws/credentials文件。阅读:https://realpython.com/python-boto3-aws-s3/以下代码将训练一个模型并使用
boto3将其上传到S3:import time from pykeen.pipeline import pipeline pipeline_result = pipeline( dataset='Kinships', model='TransE', ) directory = f'tests/{time.strftime("%Y-%m-%d-%H%M%S")}' bucket = 'pykeen' pipeline_result.save_to_s3(directory, bucket=bucket)