代码之家  ›  专栏  ›  技术社区  ›  aerin

pytorch-loss.backward()和optimizer.step()之间的连接

  •  4
  • aerin  · 技术社区  · 7 年前

    哪里是 optimizer 以及 loss ?

    在没有调用的情况下,优化器如何知道从何处获取损失的梯度呢? optimizer.step(loss) ?

    -更多的上下文

    当我最小化损失时,我不需要将梯度传递给优化器。

    loss.backward() # Back Propagation
    optimizer.step() # Gardient Descent
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Shai    7 年前

    optimizer 您明确地告诉它应该更新模型的哪些参数(张量)。梯度由张量本身“存储”(它们有一个 grad 和A requires_grad backward() optimizer.step() 使优化器迭代它应该更新的所有参数(张量),并使用其内部存储的参数