首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ClearML单个脚本中的多个任务更改记录的值名

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

Stack Overflow用户
提问于 2021-02-19 14:37:16
回答 1查看 316关注 0票数 1

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

我为每个应变阶段( trainvaltest )在每个时期记录下列标量:lossacciou

当我有多个配置时,例如networkAnetworkB,第一个训练将其值记录到lossacciou,而第二个则记录到networkB:lossnetworkB:accnetworkB:iou。这使得价值无法比较。

我使用Task initalization的培训循环如下所示:

代码语言:javascript
复制
names = ['networkA', networkB']
for name in names:
     task = Task.init(project_name="NetworkProject", task_name=name)
     pl_train(name)
     task.close()

方法pl_train是一种用于整个训练的包装器。此方法中没有ClearML代码。

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

编辑: ClearML版本为0.17.4。发行是固定在主要分支。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-19 22:31:43

免责声明我是ClearML (以前的训练)团队的一员。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66279581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档