Machine learning loss.backward()与模型的适当参数有什么关系?

Machine learning loss.backward()与模型的适当参数有什么关系?,machine-learning,deep-learning,pytorch,Machine Learning,Deep Learning,Pytorch,我是PyTorch的新手,我很难理解loss如何通过loss.backward()计算梯度 当然,我知道参数需要有requires_grad=True,并且我知道它将x.grad设置为适当的梯度,以便优化器稍后执行梯度更新 优化器在实例化时链接到模型参数,但丢失永远不会链接到模型 我一直在经历,但我不认为有人回答得很清楚,而且开始发帖子的人似乎和我有同样的问题 当我有两个具有两个不同损失函数和两个不同优化器的不同网络时会发生什么。我将很容易地将优化器链接到每个网络,但如果我从未将它们链接在一起,

我是PyTorch的新手,我很难理解
loss
如何通过
loss.backward()计算梯度

当然,我知道参数需要有
requires_grad=True
,并且我知道它将
x.grad
设置为适当的梯度,以便优化器稍后执行梯度更新

优化器在实例化时链接到模型参数,但丢失永远不会链接到模型

我一直在经历,但我不认为有人回答得很清楚,而且开始发帖子的人似乎和我有同样的问题


当我有两个具有两个不同损失函数和两个不同优化器的不同网络时会发生什么。我将很容易地将优化器链接到每个网络,但如果我从未将它们链接在一起,损失函数如何知道如何计算每个适当网络的梯度?

问题似乎非常笼统,因此我只能提供一些建议,让您开始(我希望):

  • 绘制图形以了解数据如何在计算图形中流动
  • 查看torch.autograd文档,了解框架如何记录用于计算渐变(“向后”)的所有操作
  • 可以使用钩子(Python3+PyTorch提供)计算渐变值。它还应该让您了解渐变是如何在图形中流动的 你能把这些图表贴出来吗?这样你就可以得到具体的答案了

如果上面没有回答您的问题,我要求您用示例代码澄清您的问题

损耗本身是一个张量,它是从网络参数推导而来的。图是隐式构造的,其中每个新的张量(包括损失)都指向与其构造相关的张量。应用
loss.backward()
pytorch后向跟踪图形,并使用链式规则(即反向传播)将每个张量的
.grad
成员与该张量的损失部分增量填充到该张量中

可以绘制哪个图形?或者如何?