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) 后跟一次反向传播,对于未接收到梯度的参数,.grads 保证为 None。3. torch.optim 优化器在梯度为0或 None 的情况下有不同的行为:在一个情况下它使用零梯度进行步骤,在另一个情况下则完全跳过该步骤。

本页目录