学习率下降代码 torch
时间: 2023-09-13 22:05:51 浏览: 83
学习率下降是深度学习中非常重要的一个技巧,可以提高模型的收敛速度和准确率。在 PyTorch 中,可以通过 `torch.optim.lr_scheduler` 模块来实现学习率下降。
以下是一个简单的示例代码,展示如何在训练过程中使用学习率下降:
```python
import torch
import torch.optim as optim
import torch.optim.lr_scheduler as lr_scheduler
# 定义模型和优化器
model = ...
optimizer = optim.SGD(model.parameters(), lr=0.1, momentum=0.9)
# 定义学习率下降策略
scheduler = lr_scheduler.StepLR(optimizer, step_size=10, gamma=0.1)
# 训练循环
for epoch in range(num_epochs):
# 在每个 epoch 开始时调用 scheduler.step() 函数
scheduler.step()
for batch_idx, (data, target) in enumerate(train_loader):
# 计算损失和梯度,更新模型参数
optimizer.zero_grad()
output = model(data)
loss = ...
loss.backward()
optimizer.step()
```
在这个示例中,我们首先定义了一个 `SGD` 优化器,然后创建了一个 `StepLR` 学习率下降策略,其中 `step_size` 参数表示每隔多少个 epoch 调整一次学习率,`gamma` 参数表示学习率缩放因子。在训练循环中,每个 epoch 开始时调用 `scheduler.step()` 函数,该函数会根据定义的学习率下降策略自动调整学习率。
阅读全文