Skip to main content

如何在 PyTorch 中使用 GPU

这是一则有关如何在 PyTorch 深度学习模型中使用 GPU 的简短教程,内容包括检查可用性到将可用内容可视化等。
Created on August 12|Last edited on August 12
本报告是作者Ayush Thakur所写的"How To Use GPU with PyTorch"的翻译



章节



简介

在本文中,我们将详细介绍使用GPU并对其进行更好控制的方式。
此处我们将使用可自动记录所有GPU和CPU指标的“Weights & Biases”。这使得我们在训练大量模型时可以轻松监控计算资源的使用情况。
在继续之前,如果你尚未检查,则可能要先查看PyTorch 是否已在使用GPU

检查GPU的可用性

检查是否有权访问GPU的最简单方法,是调用torch.cuda.is_available()。如果结果为 True,则表明系统已正确安装Nvidia驱动。
>>> import torch
>>> torch.cuda.is_available()

使用GPU- 陷阱

  • 默认情况下,张量是在CPU上生成的。即使是模型也是在CPU上进行的初始化。因此我们必须手动确保操作是通过GPU完成的。
    >>> X_train = torch.FloatTensor([0., 1., 2.])
    >>> X_train.is_cuda
    False
  • PyTorch提供了方便使用的API,可将在 CPU 上生成的张量转移至GPU上。幸运的是,新张量是在与父张量相同的设备上生成的。
    >>> X_train = X_train.to(device)
    >>> X_train.is_cuda
    True
  • 同样的逻辑也适用于模型。
    model = MyModel(args)
    model.to(device)
  • 因此,数据和模型需要转移至GPU。那么,device 又是什么呢?
  • 这是一种常见的 PyTorch 初始化变量的操作方式。通常我们会将其命名为 device,其将用于保留我们进行训练时所使用的的设备(CPU或GPU)。
    device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
    print(device)

Torch CUDA 包

在 PyTorch 中,torch.cuda 包对于CUDA 张量类型(与CPU张量所实现的功能相同)提供了额外支持,并且会使用CPU进行计算。
  • 如果您想将张量放在GPU上使用的话,可调用 .cuda()
    >>> X_train = torch.FloatTensor([0., 1., 2.])
    >>> X_train = X_train.cuda()
  • 如果张量在 GPU 上,并且您想将其移动至 CPU,那么可以调用 .cpu()。这通常用于将模型的输出(张量)引入 CPU 中。
  • 获取当前已选定设备的索引。
    >>> torch.cuda.current_device() # returns 0 in my case
  • 获取可用 GPU 数量。
    >>> torch.cuda.device_count() # returns 1 in my case
  • 获取设备名称。
    >>> torch.cuda.get_device_name(0) # good old Tesla K80


示例及GPU指标可视化


可尝试已链接的colab笔记本以使用PyTorch训练一个简单的MNIST分类器。笔记本已集成至 Weights & Biases 中。
如果您想使用Weights & Biases来追踪模型,那么所有系统指标(包括 GPU 使用情况)都将被自动记录。其中包含的一些重要指标有:已分配的GPU内存、GPU使用情况、CPU使用情况等等。您可在此处查看完整的记录指标列表
下方的媒体面板中展示了训练过程中由W&B自动记录的部分系统指标。


Run set
1


总结

本文对如何使用Keras来通过GPU进行深度学习,并使用Weights and Biases 来对资源消耗情况进行监测。看看这篇来自 Lambda Labs 的优质文章吧,其中介绍了在训练中使用 Weights & Biases 进行系统资源使用情况追踪的信息。

试试Weights & Biases

Weights & Biases能够帮助您对自己的机器学习实验进行跟踪。您可尝试使用我们的工具来记录各项指标(无论是超参数还是运行输出指标),还可对结果进行可视化与对比,便于您快速与同事分享发现。
仅需5分钟即可轻松上手,也可在Replit上体验2项快速实验,并了解W&B可以何种方式让您的工作井井有条。请参考下方的说明:
说明:
  1. 点击下方的绿色“运行”按钮(首次点击运行时,Replit将需要 30-45 秒的时间来分配机器
  2. 按照终端窗口中的提示进行操作(右下方的窗格)
  3. 您可对终端窗口(右下)的大小进行调整



推荐给PyTorch爱好者的读物



Iterate on AI agents and models faster. Try Weights & Biases today.