单个脚本中的 ClearML 多个任务更改记录的值名称
ClearML multiple tasks in single script changes logged value names
我为自定义超参数搜索训练了多个具有不同配置的模型。我使用 pytorch_lightning 及其日志记录 (TensorboardLogger)。
当 运行 我的训练脚本在 Task.init() 之后,ClearML 自动创建一个任务并将记录器输出连接到服务器。
我为每个应变阶段 train
、val
和 test
在每个时期记录以下标量:loss
、acc
和 iou
当我有多个配置时,例如networkA
和 networkB
第一次训练将其值记录到 loss
、acc
和 iou
,但第二次训练记录到 networkB:loss
、networkB:acc
和 networkB:iou
。这使得价值观无可比拟。
我的任务初始化训练循环如下所示:
names = ['networkA', networkB']
for name in names:
task = Task.init(project_name="NetworkProject", task_name=name)
pl_train(name)
task.close()
方法pl_train 是使用 Pytorch Ligtning 进行整个训练的包装器。此方法中没有 ClearML 代码。
您有什么提示,如何在使用完全分离的任务的脚本中正确使用循环?
编辑:ClearML 版本为 0.17.4。问题已在主分支中修复。
免责声明我是 ClearML(以前称为 Trains)团队的一员。
pytorch_lightning
正在为每个实验创建一个新的 Tensorboard。当 ClearML 记录 TB 标量并捕获再次重新发送的相同标量时,它会添加一个前缀,因此如果您报告相同的指标,它不会覆盖前一个。一个很好的例子是在训练阶段和验证阶段报告 loss
标量(产生“损失”和“验证:损失”)。可能是 task.close()
调用没有清除以前的日志,所以它“认为”这是同一个实验,因此将前缀 networkB
添加到 loss
。只要您在训练完成后关闭任务,您就应该让所有实验日志都具有相同的 metric/variant (title/series)。我建议打开一个 GitHub 问题,这应该被认为是一个错误。
我为自定义超参数搜索训练了多个具有不同配置的模型。我使用 pytorch_lightning 及其日志记录 (TensorboardLogger)。 当 运行 我的训练脚本在 Task.init() 之后,ClearML 自动创建一个任务并将记录器输出连接到服务器。
我为每个应变阶段 train
、val
和 test
在每个时期记录以下标量:loss
、acc
和 iou
当我有多个配置时,例如networkA
和 networkB
第一次训练将其值记录到 loss
、acc
和 iou
,但第二次训练记录到 networkB:loss
、networkB:acc
和 networkB:iou
。这使得价值观无可比拟。
我的任务初始化训练循环如下所示:
names = ['networkA', networkB']
for name in names:
task = Task.init(project_name="NetworkProject", task_name=name)
pl_train(name)
task.close()
方法pl_train 是使用 Pytorch Ligtning 进行整个训练的包装器。此方法中没有 ClearML 代码。
您有什么提示,如何在使用完全分离的任务的脚本中正确使用循环?
编辑:ClearML 版本为 0.17.4。问题已在主分支中修复。
免责声明我是 ClearML(以前称为 Trains)团队的一员。
pytorch_lightning
正在为每个实验创建一个新的 Tensorboard。当 ClearML 记录 TB 标量并捕获再次重新发送的相同标量时,它会添加一个前缀,因此如果您报告相同的指标,它不会覆盖前一个。一个很好的例子是在训练阶段和验证阶段报告 loss
标量(产生“损失”和“验证:损失”)。可能是 task.close()
调用没有清除以前的日志,所以它“认为”这是同一个实验,因此将前缀 networkB
添加到 loss
。只要您在训练完成后关闭任务,您就应该让所有实验日志都具有相同的 metric/variant (title/series)。我建议打开一个 GitHub 问题,这应该被认为是一个错误。