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)後進行反向傳播,則對於未接收到梯度的引數,.grads 保證為 None。3.torch.optim最佳化器在梯度為 0 或 None 時行為不同(一種情況下它會使用 0 梯度執行步驟,另一種情況下它會完全跳過該步驟)。