相关疑难解决方法(0)

autograd.grad 和 autograd.backward 之间的区别?

假设我有自定义损失函数,并且我想在神经网络的帮助下拟合某些微分方程的解。因此,在每次前向传递中,我都会计算神经网络的输出,然后通过采用 MSE 和我想要拟合感知器的预期方程来计算损失。

现在我的疑问是:我应该使用grad(loss)反向loss.backward()传播来计算和更新我的梯度吗?

我知道,在使用 loss.backward() 时,我必须用 Variable 包装我的张量,并且必须为我想要获取损失梯度的变量设置 require_grad = True 。

所以我的问题是:

  • 是否grad(loss)还需要任何此类显式参数来识别梯度计算的变量?
  • 它实际上是如何计算梯度的?
  • 哪种方法更好?
  • 在实际场景中两者的主要区别是什么?

如果您能解释这两种方法的实际含义,那就更好了,因为每当我试图在网上找到它时,我都会被很多与我的项目不太相关的东西轰炸。

gradient backpropagation gradient-descent pytorch autograd

13
推荐指数
2
解决办法
7599
查看次数