如何在 PyTorch 中使用 GPU
这是一则有关如何在 PyTorch 深度学习模型中使用 GPU 的简短教程,内容包括检查可用性到将可用内容可视化等。
Created on August 12|Last edited on August 12
Comment
章节
简介
在本文中,我们将详细介绍使用GPU并对其进行更好控制的方式。
此处我们将使用可自动记录所有GPU和CPU指标的“Weights & Biases”。这使得我们在训练大量模型时可以轻松监控计算资源的使用情况。
检查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_cudaFalse
- PyTorch提供了方便使用的API,可将在 CPU 上生成的张量转移至GPU上。幸运的是,新张量是在与父张量相同的设备上生成的。>>> X_train = X_train.to(device)>>> X_train.is_cudaTrue
- 同样的逻辑也适用于模型。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指标可视化
如果您想使用Weights & Biases来追踪模型,那么所有系统指标(包括 GPU 使用情况)都将被自动记录。其中包含的一些重要指标有:已分配的GPU内存、GPU使用情况、CPU使用情况等等。您可在此处查看完整的记录指标列表
下方的媒体面板中展示了训练过程中由W&B自动记录的部分系统指标。
Run set
1
总结
本文对如何使用Keras来通过GPU进行深度学习,并使用Weights and Biases 来对资源消耗情况进行监测。看看这篇来自 Lambda Labs 的优质文章吧,其中介绍了在训练中使用 Weights & Biases 进行系统资源使用情况追踪的信息。
试试Weights & Biases
Weights & Biases能够帮助您对自己的机器学习实验进行跟踪。您可尝试使用我们的工具来记录各项指标(无论是超参数还是运行输出指标),还可对结果进行可视化与对比,便于您快速与同事分享发现。
说明:
- 点击下方的绿色“运行”按钮(首次点击运行时,Replit将需要 30-45 秒的时间来分配机器
- 按照终端窗口中的提示进行操作(右下方的窗格)
- 您可对终端窗口(右下)的大小进行调整
推荐给PyTorch爱好者的读物
PyTorch Dropout for regularization - tutorial
Learn how to regularize your PyTorch model with Dropout, complete with a code tutorial and interactive visualizations
How to save and load models in PyTorch
This article is a machine learning tutorial on how to save and load your models in PyTorch using Weights & Biases for version control.
Image Classification Using PyTorch Lightning and Weights & Biases
This article provides a practical introduction on how to use PyTorch Lightning to improve the readability and reproducibility of your PyTorch code.
Add a comment
Iterate on AI agents and models faster. Try Weights & Biases today.