
PyTorch中的model.zero_grad()与optimizer.zero_grad()用法解析
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文详细解析了在使用PyTorch框架时,关于模型参数梯度清零方法的选择,对比分析了`model.zero_grad()`和`optimizer.zero_grad()`的不同应用场景及实现机制。
直接展示代码:
```python
model.zero_grad()
optimizer.zero_grad()
```
这两种方式都是将模型中的参数梯度设为0。当 `optimizer = optim.Optimizer(net.parameters())` 时,二者等效,其中Optimizer可以是Adam、SGD等优化器。
定义如下方法:
```python
def zero_grad(self):
Sets gradients of all model parameters to zero.
for p in self.parameters():
if p.grad is not None:
p.grad.data.zero_()
```
这段代码的作用是在训练过程中,每次迭代前将模型参数的梯度清零。
全部评论 (0)
还没有任何评论哟~


