torch.optim.Optimizer.zero_grad#
- Optimizer.zero_grad(set_to_none=True)[源]#
重置所有优化过的
torch.Tensor
的梯度。- 参数
set_to_none (bool, optional) –
将梯度设置为 None,而不是设置为零。默认值:
True
这通常会降低内存占用,并能适度提高性能。但是,它会改变某些行为。例如:
当用户尝试访问梯度并对其进行手动运算时,None 属性或全零的 Tensor 会产生不同的行为。
如果用户请求
zero_grad(set_to_none=True)
然后执行 backward,对于未收到梯度的参数,其.grad
保证为 None。torch.optim
优化器在梯度为 0 或 None 时行为不同(一种情况是以 0 梯度执行步长,另一种情况是跳过该步长)。