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