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.torch.optim
优化器在梯度为 0 或 None 时具有不同的行为(在一种情况下,它使用梯度 0 执行步骤,而在另一种情况下,它完全跳过步骤)。