torch.optim.Adam()使用
时间: 2024-01-14 07:47:42 浏览: 61
ADAM使用
5星 · 资源好评率100%
torch.optim.Adam() 是用于在 PyTorch 中实现 Adam 优化算法的类。Adam 是一种常用的自适应学习率优化算法,它可以自适应地调整每个参数的学习率,以便更好地适应数据的不同特征。
以下是一个使用 torch.optim.Adam() 的例子:
```python
import torch
import torch.optim as optim
# 定义模型和损失函数
model = ...
criterion = ...
# 定义优化器
optimizer = optim.Adam(model.parameters(), lr=0.001)
# 进行训练
for epoch in range(num_epochs):
running_loss = 0.0
for i, data in enumerate(trainloader, 0):
inputs, labels = data
# 清空梯度
optimizer.zero_grad()
# 前向传播、计算损失、反向传播
outputs = model(inputs)
loss = criterion(outputs, labels)
loss.backward()
# 更新参数
optimizer.step()
# 打印损失
running_loss += loss.item()
if i % 2000 == 1999: # 每 2000 个小批量数据打印一次损失
print('[%d, %5d] loss: %.3f' %
(epoch + 1, i + 1, running_loss / 2000))
running_loss = 0.0
```
在上面的代码中,我们首先定义了模型和损失函数,然后创建了一个 Adam 优化器,指定了学习率为 0.001。在每个训练周期和每个小批量数据中,我们都使用 optimizer.zero_grad() 将梯度清零,然后进行前向传播、计算损失、反向传播和更新参数的操作。每 2000 个小批量数据,我们打印一次损失。
注意,torch.optim.Adam() 还有许多其他参数可以设置,例如 betas、eps、weight_decay 等,可以根据具体情况进行调整。
阅读全文