嗨,我想用pytorch来理解NN。 我对梯度计算有疑问。
将torch.optim导入为优化
create your optimizer
optimizer = optim.SGD(net.parameters(), lr=0.01)
```
# in your training loop:
optimizer.zero_grad() # zero the gradient buffers
output = net(input)
loss = criterion(output, target)
loss.backward()
optimizer.step() # Does the update
```
从about代码中,我了解了loss.backward()计算梯度。
我不确定这些信息如何与optimizer
共享以更新渐变。
任何人都可以解释一下..
谢谢!
答案 0 :(得分:2)
在此行中创建优化器时
optimizer = optim.SGD(net.parameters(), lr=0.01)
您为net.parameters()
提供了所有可学习的参数,这些参数将基于渐变进行更新。
仅由于模型和优化器共享相同的参数,因此它们相互连接。
PyTorch参数是张量。它们不再称为变量。