[英]ClearML multiple tasks in single script changes logged value names
我為自定義超參數搜索訓練了具有不同配置的多個模型。 我使用 pytorch_lightning 及其日志記錄(TensorboardLogger)。 在 Task.init() 之后運行我的訓練腳本時,ClearML 會自動創建一個任務並將記錄器 output 連接到服務器。
我記錄每個應變階段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
中。 只要您在訓練完成后關閉任務,您就應該使用相同的指標/變量(標題/系列)記錄所有實驗。 我建議打開一個 GitHub 問題,這可能應該被認為是一個錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.