使用Tensorboard

Tensorboard 是一个用于在训练期间或之后跟踪实验结果的服务。它是更大的 Tensorflow 项目的一部分,但可以独立使用。

安装Tensorboard

tensorboard 包可以直接通过 pip install tensorboard 安装,或者通过 PyKEEN 使用 tensorboard 额外选项在 pip install pykeen[tensorboard] 中安装。

注意

可以在不实际安装TensorBoard的情况下创建TensorBoard日志。 但是,如果你想查看并通过跟踪器与创建的数据进行交互,则必须安装它。

启动Tensorboard

可以从命令行启动tensorboard网络应用程序

$ tensorboard --logdir=~/.data/pykeen/logs/tensorboard/

传递给--logdir的值是日志目录的位置。默认情况下,PyKEEN会记录到 ~/.data/pykeen/logs/tensorboard/,但这是可配置的。 然后可以通过浏览器访问Tensorboard:http://localhost:6006/

注意

在训练过程中,不需要运行Tensorboard进程。实际上,只有在您想要与日志交互并查看日志时,才需要启动它。它可以随时停止,日志将保留在文件系统中。

最小管道示例

在训练过程中,可以使用tensorboard跟踪器与pykeen.pipeline.pipeline()如下所示:

from pykeen.pipeline import pipeline

pipeline_result = pipeline(
    model='RotatE',
    dataset='Kinships',
    result_tracker='tensorboard',
)

它被放置在PyKEEN的默认数据目录pystow的一个子目录中,称为tensorboard, 在你的系统上可能位于~/.data/pykeen/logs/tensorboard。如果没有提供其他名称,文件将基于当前时间命名。

指定日志名称

如果你想在默认目录中指定日志文件的名称,请使用experiment_name关键字参数,如下所示:

from pykeen.pipeline import pipeline

pipeline_result = pipeline(
    model='RotatE',
    dataset='Kinships',
    result_tracker='tensorboard',
    result_tracker_kwargs=dict(
        experiment_name='rotate-kinships',
    ),
)

指定自定义日志目录

如果你想指定一个自定义目录来存储tensorboard日志,请使用experiment_path关键字参数,如下所示:

from pykeen.pipeline import pipeline

pipeline_result = pipeline(
    model='RotatE',
    dataset='Kinships',
    result_tracker='tensorboard',
    result_tracker_kwargs=dict(
        experiment_path='tb-logs/rotate-kinships',
    ),
)

警告

请注意,如果您使用相同的目录重新运行实验,日志将被合并。 建议为每个实验使用唯一的子目录,以便于比较。

最小HPO管道示例

Tensorboard 跟踪也可以与 HPO 管道结合使用,如下所示:

from pykeen.pipeline import pipeline

hpo_pipeline_result = hpo_pipeline(
    n_trials=30,
    dataset='Nations',
    model='TransE',
    result_tracker='tensorboard',
)

这提供了一种直接比较不同试验和参数配置的方法。请注意,建议将实验名称保留为默认值,以便为每个试验创建一个目录。