使用Neptune.ai

Neptune 是一个用于跟踪机器学习结果的图形工具。PyKEEN 将 Neptune 集成到管道和 HPO 管道中。

准备

  1. 要使用它,您首先需要使用pip install neptune-client安装Neptune的客户端,或者使用pip install pykeen[neptune]安装带有neptune额外功能的PyKEEN。

  2. Neptune创建一个账户。

    • 按照本教程获取API令牌。

    • [可选] 将 NEPTUNE_API_TOKEN 环境变量设置为您的 API 令牌。

  3. [可选] 按照此教程进行项目和用户管理创建一个新项目。 Neptune 会自动为所有新用户创建一个名为 sandbox 的项目,你可以直接使用。

管道示例

这个示例展示了如何使用Neptune与pykeen.pipeline.pipeline()函数。 至少需要设置project_qualified_nameexperiment_name

from pykeen.pipeline import pipeline

pipeline_result = pipeline(
    model='RotatE',
    dataset='Kinships',
    result_tracker='neptune',
    result_tracker_kwargs=dict(
        project_qualified_name='cthoyt/sandbox',
        experiment_name='Tutorial Training of RotatE on Kinships',
    ),
)

警告

如果您尚未设置NEPTUNE_API_TOKEN环境变量,则api_token成为必填项。

重用实验

在Neptune网络应用程序中,您会看到实验被分配了一个ID。这意味着您可以使用experiment_id关键字参数而不是experiment_name来将不同的子实验分组在一起。

from pykeen.pipeline import pipeline

experiment_id = 4  # if doesn't already exist, will throw an error!
pipeline_result = pipeline(
    model='RotatE',
    dataset='Kinships',
    result_tracker='neptune'
    result_tracker_kwargs=dict(
        project_qualified_name='cthoyt/sandbox',
        experiment_id=4,
    ),
)

不用担心 - 你可以继续使用 experiment_name 参数,每次都会自动查找实验的标识符。

添加标签

标签是您可能想要添加到实验中并存储在Neptune中的附加信息。请注意,这与MLflow不同,MLflow将标签视为键/值对。

例如,如果您正在使用自定义输入,您可能希望添加一些标签来说明实验是否很酷。

from pykeen.pipeline import pipeline

data_version = ...

pipeline_result = pipeline(
    model='RotatE',
    training=...,
    testing=...,
    validation=...,
    result_tracker='mlflow',
    result_tracker_kwargs=dict(
        project_qualified_name='cthoyt/sandbox',
        experiment_name='Tutorial Training of RotatE on Kinships',
        tags={'cool', 'doggo'},
    ),
)

有关有效关键字参数的附加文档可以在 pykeen.trackers.NeptuneResultTracker 下找到。