使用基于文件的跟踪

与记录到像MLflow或W&B这样的外部后端不同,基于文件的跟踪器将数据写入本地文件。

使用CSV的最小管道示例

可以使用以下方法生成CSV日志文件:

from pykeen.pipeline import pipeline

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

它被放置在pystow默认数据目录的一个子目录中,该目录名为logs, 在你的系统上可能位于~/.data/pykeen/logs/。文件名基于当前时间。

指定名称

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

from pykeen.pipeline import pipeline

pipeline_result = pipeline(
    model='RotatE',
    dataset='Kinships',
    result_tracker='csv',
    result_tracker_kwargs=dict(
        name='test.csv',
    ),
)

额外的关键字参数会传递给 csv.writer()。这可能包括 一个 delimiterdialectquotechar 等。

警告

如果您指定了文件名,它将覆盖那里之前的日志文件。

path 参数可以用来代替 name,以指定日志文件的绝对路径,而不是使用 PyStow 目录。

tail结合使用

如果你知道文件的名称,你可以使用tail-f标志来监控它,如下所示:

$ tail -f ~/data/pykeen/logs/test.csv | grep "hits_at_10"

使用JSON的管道示例

JSON写入器创建一个JSONL文件,其中每一行都是一个有效的JSON对象。 与CSV写入器类似,可以省略name参数以创建基于时间的文件名,或者指定默认名称。仍然可以使用path参数来指定绝对路径。

from pykeen.pipeline import pipeline

pipeline_result = pipeline(
    model='RotatE',
    dataset='Kinships',
    result_tracker='json',
    result_tracker_kwargs=dict(
        name='test.json',
    ),
)

与之前的跟踪器教程相同,这些概念也可以应用于HPO管道中。 有关有效关键字参数的额外文档可以在 pykeen.trackers.CSVResultTrackerpykeen.trackers.JSONResultTracker 下找到。