torch.optim.Optimizer.zero_grad
- Optimizer.zero_grad(set_to_none=True)[源代码]
-
将所有优化的
torch.Tensor
的梯度重置。- 参数
-
set_to_none (bool) – 代替将梯度设置为零,将其设置为 None。这通常会减少内存占用,并可以适度提高性能。然而,它改变了某些行为:1. 当用户尝试访问梯度并执行手动操作时,None 属性或全为0的 Tensor 的表现不同。2. 如果用户请求
zero_grad(set_to_none=True)
后跟一次反向传播,对于未接收到梯度的参数,.grad
s 保证为 None。3.torch.optim
优化器在梯度为0或 None 的情况下有不同的行为:在一个情况下它使用零梯度进行步骤,在另一个情况下则完全跳过该步骤。