torch.optim.Optimizer.zero_grad¶
- Optimizer.zero_grad(set_to_none=True)[source][source]¶
重設所有已最佳化
torch.Tensor
的梯度。- 參數
set_to_none (bool) – 不要設定為零,而是將梯度設定為 None。通常這樣做可以減少記憶體用量,並稍微提高效能。然而,它會改變某些行為。例如:1. 當使用者嘗試存取梯度並對其執行手動操作時,None 屬性或充滿 0 的 Tensor 的行為會有所不同。2. 如果使用者請求
zero_grad(set_to_none=True)
,然後進行反向傳播,則保證沒有接收到梯度的參數的.grad
為 None。3. 如果梯度為 0 或 None,torch.optim
最佳化器的行為會有所不同(在一個例子中,它會以 0 的梯度執行步驟,而在另一個例子中,它會完全跳過該步驟)。