評價此頁

torch.optim.Optimizer.zero_grad#

Optimizer.zero_grad(set_to_none=True)[源]#

重置所有最佳化過的 torch.Tensor 的梯度。

引數

set_to_none (bool, optional) –

將梯度設定為 None,而不是設定為零。預設值:True

這通常會降低記憶體佔用,並能適度提高效能。但是,它會改變某些行為。例如:

  1. 當用戶嘗試訪問梯度並對其進行手動運算時,None 屬性或全零的 Tensor 會產生不同的行為。

  2. 如果使用者請求 zero_grad(set_to_none=True) 然後執行 backward,對於未收到梯度的引數,其 .grad 保證為 None。

  3. torch.optim 最佳化器在梯度為 0 或 None 時行為不同(一種情況是以 0 梯度執行步長,另一種情況是跳過該步長)。