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

09|使用GPU优化训练性能

在本课程的最后一部分,我们将探讨如何利用 GPU,相较于常规 CPU,GPU 将加速深度神经网络训练。首先,我们将介绍 PyTorch 中 GPU 计算的主要概念。然后,我们将在单个 GPU 上训练一个模型。最后,我们将探讨使用多个 GPU 进行分布式训练。

PyTorch 在 GPU 设备上的计算

正如你看到的,将第 07 讲的训练循环修改为可选 GPU 运行模式其实相当简单,仅需改动三行代码即可实现。
在进行代码修改之前,理解 PyTorch 中 GPU 计算的核心概念至关重要。首先需要明确“设备”(device)这一概念:在 PyTorch 中,设备是执行计算和存储数据的载体,CPU 和 GPU 都是典型的设备类型。PyTorch 张量总是驻留在特定设备上,其所有运算也将在同一设备上执行。
让我们通过实际代码来验证这一点。假设你已按照第 01 讲“安装 PyTorch”中的说明安装了支持 GPU 的 PyTorch 版本,我们可以通过以下代码确认当前运行环境是否支持 GPU 计算:
print(torch.cuda.is_available())
结果是:
True
假设我们现在有两个张量需要进行加法运算——默认情况下,这个计算过程会在 CPU 上执行:
tensor_1 = torch.tensor([1., 2., 3.])
tensor_2 = torch.tensor([4., 5., 6.])
print(tensor_1 + tensor_2)
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. PyTorch中的GPU计算核心概念是设备,可以在CPU和GPU上执行计算和存储数据。 2. 通过`.to()`方法可以将张量转移到GPU上执行计算,并且所有张量必须位于同一设备上,否则计算将失败。 3. 单个GPU训练模型相对简单,只需将张量传输到同一个GPU设备上,PyTorch会处理其余部分。 4. 在训练循环中,可以通过修改代码使其在GPU上运行,从而获得性能提升,尤其对于深度神经网络的训练。 5. 分布式训练是指将模型训练任务分配到多个GPU和多台机器上并行执行的技术方案,可以显著缩短训练时间。 6. PyTorch的DistributedDataParallel(DDP)策略通过将输入数据划分到可用设备上并同步处理这些数据子集,实现并行化训练。 7. DDP会在每个GPU上启动独立进程,每个进程都会接收并保存模型的完整副本,实现模型同步。 8. 使用DDP能显著提升数据集的处理速度,处理一个训练周期所需的时间可以比单GPU减少一半,随着GPU数量的增加而提升。 9. DDP无法在交互式Python环境中正常运行,需要作为脚本执行,而非在Jupyter等notebook界面中运行。 10. 需要使用额外的子模块、类和函数以及初始化和退出分布式训练模式来实现DDP训练。

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

精选留言

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