PyTorch 面试题
目录

PyTorch 中如何使用 torch.optim.Adam?

· 约 3 分钟读完 · 第 58 / 125 章

推荐答案

在 PyTorch 中,torch.optim.Adam 是一种常用的优化器,用于更新神经网络的参数。以下是如何使用 torch.optim.Adam 的基本步骤:

本题详细解读

1. 导入必要的库

首先,我们需要导入 PyTorch 的核心库 torch,以及 torch.nn 和 torch.optim 模块。torch.nn 提供了神经网络层和损失函数的实现,而 torch.optim 提供了各种优化算法。

2. 定义模型

我们定义了一个简单的线性模型 SimpleModel,它包含一个全连接层 nn.Linear。这个模型将 10 维的输入映射到 1 维的输出。

3. 实例化模型和损失函数

我们实例化了模型 SimpleModel,并定义了均方误差损失函数 nn.MSELoss()。

4. 定义优化器

使用 torch.optim.Adam 来定义优化器。model.parameters() 返回模型中所有需要优化的参数,lr=0.001 是学习率。

5. 准备数据

我们生成了一些随机的输入数据 inputs 和目标数据 targets,用于训练模型。

6. 前向传播

通过调用 model(inputs) 进行前向传播,得到模型的输出 outputs。然后计算损失 loss,即模型输出与目标数据之间的均方误差。

7. 反向传播和优化

在反向传播之前,使用 optimizer.zero_grad() 清除之前的梯度。然后调用 loss.backward() 计算梯度,最后调用 optimizer.step() 更新模型参数。

通过以上步骤,我们完成了使用 torch.optim.Adam 进行模型训练的一个完整迭代。