簡體   English   中英

單個腳本中的 ClearML 多個任務更改記錄的值名稱

[英]ClearML multiple tasks in single script changes logged value names

我為自定義超參數搜索訓練了具有不同配置的多個模型。 我使用 pytorch_lightning 及其日志記錄(TensorboardLogger)。 在 Task.init() 之后運行我的訓練腳本時,ClearML 會自動創建一個任務並將記錄器 output 連接到服務器。

我記錄每個應變階段trainval並在每個時期test以下標量: lossacciou

當我有多個配置時,例如networkAnetworkB第一個訓練將其值記錄到lossacciou ,但第二個記錄到networkB:lossnetworkB:accnetworkB: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中。 只要您在訓練完成后關閉任務,您就應該使用相同的指標/變量(標題/系列)記錄所有實驗。 我建議打開一個 GitHub 問題,這可能應該被認為是一個錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM