擅长:python、mysql、java
<p>不用深入研究Pythorch的内部结构,我可以给出一个简单的答案:</p>
<p>回想一下,在初始化<code>optimizer</code>时,您明确地告诉它应该更新模型的哪些参数(张量)。一旦你调用丢失的<code>backward()</code>,梯度就由张量本身“存储”(它们有一个<a href="https://pytorch.org/docs/master/autograd.html#torch.Tensor.grad" rel="noreferrer">^{<cd2>}</a>和一个<a href="https://pytorch.org/docs/master/autograd.html#torch.Tensor.requires_grad" rel="noreferrer">^{<cd3>}</a>属性)。在计算模型中所有张量的梯度之后,调用<code>optimizer.step()</code>使优化器迭代所有参数(张量),它应该更新并使用它们内部存储的<code>grad</code>来更新它们的值。在</p>