簡體   English   中英

使用 Trains 跟蹤單獨的訓練/測試過程

[英]Tracking separate train/test processes with Trains

在我的設置中,我運行一個腳本來訓練model 並開始生成檢查點。 另一個腳本監視新的檢查點並評估它們。 腳本並行運行,因此評估只是訓練的一個步驟。

支持這種情況的正確軌道配置是什么?

免責聲明:我是allegro.ai 火車團隊的一員

你有兩個實驗嗎? 一種用於測試,一種用於培訓?

如果您確實有兩個實驗,那么我會確保模型都登錄到它們中(如果它們存儲在同一個共享文件夾/s3/etc 中,這將是自動的)然后您可以快速查看每個模型的性能-一。

另一種選擇是共享同一個實驗,然后第二個過程將報告添加到原始實驗中,這意味着您必須以某種方式將實驗 ID 傳遞給它。 然后你可以這樣做:

task = Task.get_task(task_id='training_task_id`)
task.get_logger().report_scalar('title', 'loss', value=0.4, iteration=1)

編輯:這兩個進程總是一起啟動,還是檢查點測試是通用代碼?

編輯2:

假設您有訓練 model 的主腳本。 此實驗具有唯一的任務 ID:

my_uid = Task.current_task().id

我們還假設您有辦法將其傳遞給您的第二個進程(如果這是一個實際的子進程,它會繼承 os 環境變量,因此您可以執行os.environ['MY_TASK_ID']=my_uid

然后在評估腳本中,您可以直接向主要培訓任務報告,如下所示:

train_task = Task.get_task(task_id=os.environ['MY_TASK_ID'])
train_task.get_logger().report_scalar('title', 'loss', value=0.4, iteration=1)

@MichaelLitvin,我們遇到了同樣的問題,並且我們在訓練和測試中登錄的所有內容也具有相同的名稱,因為它來自相同的代碼(顯然)。 為了避免在訓練圖中出現訓練/測試混亂,我們修改了 tensorflow_bind.py 為“訓練”和“驗證”流添加不同的前綴。 Trains 的錯誤修復是添加一個 logdir 名稱(這對我們來說不是很清楚)。

*這是1-2年前完成的,所以現在可能是多余的

干杯,達根

暫無
暫無

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

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