深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第1张图片

作业内容:使用不同优化器训练模型,画出不同优化器的损失(Loss)变化图像。

  • torch.optim.Adagrad

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第2张图片

  •  torch.optim.Adam

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第3张图片

  •  torch.optim.Adamax

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第4张图片

  •  torch.optim.ASGD

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第5张图片

  •  torch.optim.LBFGS

 注意:LBFGS优化器与本篇其他所有优化器不同,需要重复多次计算函数,因此需要传入一个闭包,让他重新计算你的模型,这个闭包应当清空梯度、计算损失,然后返回损失。

闭包代码如下:

def closure():
    optimizer.zero_grad()
    y_pred = model(x_data)
    loss = criterion(y_pred, y_data)
    loss.backward()
    return loss

此时更新函数的代码不再是简化版本:optimizer.step( ),变成如下代码:

#传入闭包closure
optimizer.step(closure)

 利用LBFGS优化器的Loss变化图像如下图:

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第6张图片

  • torch.optim.RMSprop

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第7张图片

  •  torch.optim.Rprop

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第8张图片

  •  torch.optim.SGD

深度学习——PyTorch使用不同优化器训练线性回归(B站刘二大人P5作业)_第9张图片

 除了LBFGS优化器,其他优化器的使用和P5学习笔记中的代码一样,可以参考链接深度学习——用PyTorch实现线性回归(B站刘二大人P5学习笔记)_Learning_AI的博客-CSDN博客

挖一个坑,优化器在函数训练中的作用。

你可能感兴趣的:(PyTorch学习笔记,pytorch,深度学习,机器学习)