1 小时入门 PyTorch:从张量到多 GPU 神经网络训练
Sebastian Raschka(极客时间编译)
ML/AI Research Engineer
32 人已学习
免费领取
1 小时入门 PyTorch:从张量到多 GPU 神经网络训练
15
15
1.0x
00:00/00:00
登录|注册

07|典型的训练循环

到目前为止,我们已经讨论了训练神经网络的所有必要组件:PyTorch 的张量库、自动求导(autograd)、Module 接口以及高效的数据加载器。现在,让我们将所有这些结合起来,在前面章节的玩具数据集(toy dataset)上训练一个神经网络。
训练代码如下所示:
import torch.nn.functional as F
torch.manual_seed(123)
model = NeuralNetwork(num_inputs=2, num_outputs=2)
optimizer = torch.optim.SGD(model.parameters(), lr=0.5)
num_epochs = 3
for epoch in range(num_epochs):
model.train()
for batch_idx, (features, labels) in enumerate(train_loader):
logits = model(features)
loss = F.cross_entropy(logits, labels) # Loss function
optimizer.zero_grad()
loss.backward()
optimizer.step()
### LOGGING
print(f"Epoch: {epoch+1:03d}/{num_epochs:03d}"
f" | Batch {batch_idx:03d}/{len(train_loader):03d}"
f" | Train/Val Loss: {loss:.2f}")
model.eval()
# Optional model evaluation
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 训练神经网络的典型循环包括使用PyTorch的张量库、自动求导、Module接口和高效的数据加载器。 2. 在训练循环中,需要初始化模型、选择合适的优化器和超参数,以及使用验证数据集来调整模型设置。 3. 在训练模型时,需要将模型置于训练模式和评估模式,以适应不同的组件行为。 4. 在损失计算后,需要调用`loss.backward()`计算梯度,并使用`optimizer.step()`方法更新模型参数以最小化损失。 5. 可以使用模型进行预测,并通过PyTorch的softmax函数计算类别归属概率。 6. 可以使用`argmax`函数将概率转换为类别标签预测,或者直接对logits应用`argmax`函数。 7. 可以通过比较预测标签和真实标签来计算预测准确率,并实现一个通用的`compute_accuracy`函数来计算预测精度。 8. `compute_accuracy`函数可以扩展到任意大小的数据集,并在训练和测试集上应用该函数来评估模型的性能。 9. 下一步将学习如何在训练后保存和恢复模型。 以上是文章的重点内容。

该试读文章来自《1 小时入门 PyTorch:从张量到多 GPU 神经网络训练》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部