问题描述
我在训练期间使用 clearml 来跟踪我的张量板日志(来自 PyTorch Lightning)。 稍后我会启动另一个脚本,该脚本连接到现有任务并进行一些测试。
但不幸的是,我没有第二个脚本中的所有信息,所以我想从 clearml 服务器的记录值中查询它们。
我该怎么做?
我想过这样的事情,但在文档中没有找到任何内容:
task = Task.init(project_name="Project",task_name="name",reuse_last_task_id="Task_id,continue_last_task=True)
x_value,y_value = task.get_value(key="val/acc",mode="max")
x_value2,y_value2 = task.get_value(key="epoch",mode="x",x=x_value)
-
x_value
将是我的时代或全球步骤 -
y_value
绘图“val/acc”的最大值 -
x_value2
将是我的时代或全球步骤 -
y_value2
x_value
处情节“epoch”的值
解决方法
免责声明我是 ClearML(前身为 Trains)团队的一员。
假设我们知道任务 ID,要为正在运行(或已完成/失败)的实验获取现有的 Task
对象:
another_task = Task.get_task(task_id='aabbcc')
如果我们只知道任务项目/名称
another_task = Task.get_task(project_name='the project',task_name='the name')
请注意,如果您有多个同名任务,它将返回最新的一个。
获得 Task
对象后,我们可以执行以下操作:
latest_scalar_values_dict = another_task.get_last_scalar_metrics()
这将返回所有标量 min/maxm/last 值,例如:
latest_scalar_values_dict = {
'title': {
'series': {
'last': 0.5,'min': 0.1,'max': 0.9
}
}
}
如果您需要获取整个图表,您可以使用 task.get_reported_scalars()
see docs