快捷方式

KinetoStepTracker

class torch.autograd.profiler.KinetoStepTracker[source][source]

提供一個用於全域增加步數計數的抽象層。

先前,我們只有一個地方可以透過 pytorch profiler step() 來標記程式中發生了 step()。 現在,我們將在 Optimizer 類別中新增 step hooks https://github.com/pytorch/pytorch/issues/88446

  • 這可能意味著已經在每次迭代中呼叫 profiler.step() 的程式最終會重複增加步數計數。

  • 如果模型使用多個優化器,我們也可能對步數進行雙重或多次計算。

我們透過在呼叫 kineto 函式庫的 step() 之前新增一個抽象層來解決這個問題。 想法是在字典中維護每個請求者的步數。

{
   "ProfilerStep": 100,  # triggered by profiler step() call
   "Optimizer1Step": 100,   # Optimizer 1 or 2 are just examples, could be SGD, Adam etc
   "Optimizer2Step": 100,
}

要計算全域步數,只需取字典值的最大值 (100)。

如果其中一個計數遞增,則最大值將會增加。

{
   "ProfilerStep": 100,
   "Optimizer1Step": 101,   # Optimizer1 got incremented first say
   "Optimizer2Step": 100,
}

然後全域步數為 101。我們只在全域計數遞增時才呼叫 kineto step() 函式。

注意:目前請不要在 Optimizer 之外的模組中使用 KinetoStepTracker。 結果可能會導致步數計數不正確地遞增。

classmethod current_step()[source][source]

取得任何請求者的最新步數

傳回型別

int

classmethod erase_step_count(requester)[source][source]

移除指定的請求者。

傳回型別

bool

classmethod increment_step(requester)[source][source]

增加請求者的步數計數。

此外,如果所有步數計數的最大值已遞增,則觸發 _kineto_step() 並傳回全域步數計數

傳回型別

int

classmethod init_step_count(requester)[source][source]

為指定的請求者初始化。

文件

存取 PyTorch 的全面開發者文件

查看文件

教學

取得初學者和高級開發者的深入教學

查看教學

資源

尋找開發資源並取得問題的解答

查看資源