在PyTorch中,可以使用torch.optim.AdamW作为Adam的替代方法来设置可调节学习率。AdamW是Adam的变体,它支持权重衰减(weight decay),这意味着我们可以通过调整weight_decay参数来控制学习率。
下面是一个使用torch.optim.AdamW设置可调节学习率的示例代码:
import torch
from torch import nn, optim
# 定义模型
model = nn.Linear(10, 2)
# 定义AdamW优化器
optimizer = optim.AdamW(model.parameters(), lr=0.001, weight_decay=0.01)
# 打印初始学习率
print("初始学习率:", optimizer.param_groups[0]['lr'])
# 调整学习率
optimizer.param_groups[0]['lr'] = 0.0001
# 打印调整后的学习率
print("调整后的学习率:", optimizer.param_groups[0]['lr'])
在上面的代码中,我们首先定义了一个包含一个线性层的模型。然后,我们使用torch.optim.AdamW创建了一个优化器对象,并将模型的参数传递给它。在创建优化器时,我们通过设置weight_decay参数来控制权重衰减,即控制学习率。我们可以通过访问optimizer.param_groups[0]['lr']来获取或修改当前学习率。
在示例代码中,我们首先打印了初始学习率,然后将学习率调整为0.0001,并打印调整后的学习率。