微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单个脚本中的 ClearML 多个任务更改记录值名称

如何解决单个脚本中的 ClearML 多个任务更改记录值名称

我为自定义超参数搜索训练了多个具有不同配置的模型。我使用 pytorch_lightning 及其日志记录 (TensorboardLogger)。 在 Task.init() 之后运行我的训练脚本时,clearml自动创建一个任务并将记录器输出连接到服务器。

我为每个应变阶段 trainvaltest 在每个时期记录以下标量:lossaccIoU

我有多个配置时,例如networkAnetworkB 第一次训练将其值记录到 lossaccIoU,但第二次记录到 networkB:loss、{{1} } 和 networkB:acc。这使得价值观无法比拟。

我的任务初始化训练循环如下所示:

networkB:IoU

方法 pl_train 是使用 Pytorch Ligtning 进行整个训练的包装器。此方法中没有 clearml 代码

您是否有任何提示,如何在使用完全分离的任务的脚本中正确使用循环的用法


编辑:clearml 版本为 0.17.4。问题已在主分支中修复。

解决方法

免责声明我是 ClearML(前身为 Trains)团队的一员。

pytorch_lightning 正在为每个实验创建一个新的 Tensorboard。当 ClearML 记录 TB 标量并捕获再次重新发送的相同标量时,它会添加一个前缀,因此如果您报告相同的指标,它不会覆盖前一个指标。一个很好的例子是在训练阶段与验证阶段报告 loss 标量(产生“损失”和“验证:损失”)。可能是 task.close() 调用没有清除之前的日志,所以它“认为”这是同一个实验,因此在 networkB 中添加了前缀 loss。只要您在训练完成后关闭任务,您就应该拥有具有相同指标/变体(标题/系列)的所有实验日志。我建议打开一个 GitHub 问题,这可能应该被认为是一个错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。