Pytorch 如何更改模型学习率?

1 修改优化器(optimizer)的超参数来更改模型的学习率

以下是一些常见的优化器和其相应的学习率设置方法:

  1. SGD 优化器(随机梯度下降)
import torch.optim as optim

# 定义模型和损失函数
model = ...
criterion = ...

# 定义优化器,并设置学习率为 0.01
optimizer = optim.SGD(model.parameters(), lr=0.01)

# 在训练过程中可以通过修改 optimizer 的 lr 属性来改变学习率
optimizer.lr = 0.001
  1. Adam 优化器
import torch.optim as optim

# 定义模型和损失函数
model = ...
criterion = ...

# 定义优化器,并设置学习率为 0.001
optimizer = optim.Adam(model.parameters(), lr=0.001)

# 在训练过程中可以通过修改 optimizer 的 lr 属性来改变学习率
optimizer.lr = 0.0001
  1. RMSprop 优化器
import torch.optim as optim

# 定义模型和损失函数
model = ...
criterion = ...

# 定义优化器,并设置学习率为 0.01
optimizer = optim.RMSprop(model.parameters(), lr=0.01)

# 在训练过程中可以通过修改 optimizer 的 lr 属性来改变学习率
optimizer.lr = 0.001

一般通过修改优化器optimizer的 lr 属性即可实现
训练过程中,您可以根据实际情况动态调整学习率以达到更好的训练效果

2 常用优化器的默认学习率

SGD 优化器(随机梯度下降):默认学习率为 0.001
Adam 优化器:默认学习率为 0.001
Adagrad 优化器:默认学习率为 0.01
Adadelta 优化器:默认学习率为 1.0
RMSprop 优化器:默认学习率为 0.01

需要注意的是,这些默认学习率只是 PyTorch 中优化器的默认设置,实际上在训练模型时,不同的任务和数据集需要不同的学习率,因此需要根据具体情况选择合适的学习率,并进行调整。

猜你喜欢

转载自blog.csdn.net/weixin_45913084/article/details/129875241