1

我在网上看到了这段代码,我想知道我是否正确解释了它。下面是梯度下降过程的一部分。完整代码可通过链接https://jovian.ml/aakashns/03-logistic-regression获得。我的问题如下:在训练步骤中,我猜作者试图通过更新参数来最小化每批的损失。但是,如果 loss.backward() 仅应用于批量损失,我们如何确保所有训练样本的总损失最小化?

def fit(epochs, lr, model, train_loader, val_loader, opt_func=torch.optim.SGD):
    history = []
    optimizer = opt_func(model.parameters(), lr)

for epoch in range(epochs):
    # Training Phase 
    for batch in train_loader:
        loss = model.training_step(batch)
        loss.backward()
        optimizer.step()
        optimizer.zero_grad()
    # Validation phase
    result = evaluate(model, val_loader)
    model.epoch_end(epoch, result)
    history.append(result)
return history
4

0 回答 0