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