1 修改优化器(optimizer)的超参数来更改模型的学习率
以下是一些常见的优化器和其相应的学习率设置方法:
- SGD 优化器(随机梯度下降)
import torch.optim as optim
# 定义模型和损失函数
model = ...
criterion = ...
# 定义优化器,并设置学习率为 0.01
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 在训练过程中可以通过修改 optimizer 的 lr 属性来改变学习率
optimizer.lr = 0.001
- Adam 优化器
import torch.optim as optim
# 定义模型和损失函数
model = ...
criterion = ...
# 定义优化器,并设置学习率为 0.001
optimizer = optim.Adam(model.parameters(), lr=0.001)
# 在训练过程中可以通过修改 optimizer 的 lr 属性来改变学习率
optimizer.lr = 0.0001
- 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 中优化器的默认设置,实际上在训练模型时,不同的任务和数据集需要不同的学习率,因此需要根据具体情况选择合适的学习率,并进行调整。