使用基于文件的跟踪
与记录到像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()。这可能包括
一个 delimiter、dialect、quotechar 等。
警告
如果您指定了文件名,它将覆盖那里之前的日志文件。
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.CSVResultTracker 和 pykeen.trackers.JSONResultTracker 下找到。