Pytorch PyTroch,梯度计算
嗨,我正在努力理解pytorch的NN。 我对梯度计算有疑问 将torch.optim导入为optimPytorch PyTroch,梯度计算,pytorch,gradient,Pytorch,Gradient,嗨,我正在努力理解pytorch的NN。 我对梯度计算有疑问 将torch.optim导入为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,
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 = optim.SGD(net.parameters(), lr=0.01)
您提供了net.parameters()
,其中包含将根据渐变更新的所有可学习参数
模型和优化器的连接只是因为它们共享相同的参数
PyTorch参数是张量。它们不再被称为变量。当您在这行中创建优化器时
optimizer = optim.SGD(net.parameters(), lr=0.01)
您提供了net.parameters()
,其中包含将根据渐变更新的所有可学习参数
模型和优化器的连接只是因为它们共享相同的参数
PyTorch参数是张量。它们不再称为变量。渐变附加到模型内部的变量(通过调用net.parameters()
访问)。调用loss.backward()
时,将填充这些渐变。正如您的优化人员从optim.SGD(net.parameters(),lr=0.01)
中了解到的参数一样,它可以直接访问每个参数及其相应的梯度并应用它们。梯度附加到模型内部的变量(通过调用net.parameters()
访问)。调用loss.backward()
时,将填充这些渐变。正如您的优化人员从optim.SGD(net.parameters(),lr=0.01)
中了解到的参数一样,它可以直接访问每个参数及其相应的梯度并应用它们。