`torch.
optim.
sgd.
SGD`是
PyTorch中的一个
优化器类,用于实现随机梯度下降(
SGD)算法。它可以用于训练神经网络模型,通过不断地迭代来更新模型的参数,使得模型的损失函数逐渐减小,从而提高模型的准确性。
以下是一个使用`torch.
optim.
sgd.
SGD`的例子:
```python
import torch
import torch.
optim as
optim
# 定义模型和损失函数
model=torch.nn.Linear(10, 1)
criterion=torch.nn.MSELoss()
# 定义
优化器
optimizer=
optim.
SGD(model.parameters(), lr=0.01)
# 训练模型
for epoch in range(100):
# 前向传播
inputs=torch.randn(1, 10)
labels=torch.randn(1, 1)
outputs=model(inputs)
loss=criterion(outputs, labels)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
# 打印损失函数
print('Epoch [{}/{}], Loss: {:.4f}'.format(epoch+1, 100, loss.item()))
```
在这个例子中,我们首先定义了一个包含10个输入和1个输出的线性模型,以及一个均方误差损失函数。然后,我们使用`
optim.
SGD`定义了一个
SGD优化器,将模型的参数作为
优化器的参数传入。在训练过程中,我们使用前向传播计算模型的输出和损失函数,然后使用反向传播计算梯度,并使用
优化器更新模型的参数。最后,我们打印出每个epoch的损失函数。