如何解决单个脚本中的 ClearML 多个任务更改记录值名称
我为自定义超参数搜索训练了多个具有不同配置的模型。我使用 pytorch_lightning 及其日志记录 (TensorboardLogger)。 在 Task.init() 之后运行我的训练脚本时,clearml 会自动创建一个任务并将记录器输出连接到服务器。
我为每个应变阶段 train
、val
和 test
在每个时期记录以下标量:loss
、acc
和 IoU
当我有多个配置时,例如networkA
和 networkB
第一次训练将其值记录到 loss
、acc
和 IoU
,但第二次记录到 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 举报,一经查实,本站将立刻删除。