【研一必备】看懂代码CPU 还是 GPU 上运行以及会用
·
文章目录
1. 检查 CUDA 是否可用,如果可用,将模型移动到GPU(备注:具体模型定义变量参考你的代码)
一、先筛查
1. 检查当前默认设备(CPU/GPU)
import torch
# 检查默认设备(返回当前默认的 torch.device 对象)
default_device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(f"Default device: {default_device}") # 输出:cuda / cpu
2. 检查张量(Tensor)所在的设备
import torch
# 创建一个张量,默认在 CPU 上
x = torch.tensor([1, 2, 3])
print(x.device) # 输出:cpu
3. 检查模型(Model)所在的设备
import torch
import torch.nn as nn
model = nn.Linear(10, 2) # 定义一个简单的线性模型
print(next(model.parameters()).device) # 输出:cpu(默认在 CPU 上)
二、后转换
1. 检查 CUDA 是否可用,如果可用,将模型移动到GPU(备注:具体模型定义变量参考你的代码)
import torch
import torch.nn as nn
# ①对象是张量——如果 CUDA 可用,手动将张量移动到 GPU
if torch.cuda.is_available():
x = x.to('cuda')
print(x.device) # 输出:cuda:0(如果有多个 GPU,可能是 cuda:1 等)
# ②对象是模型——如果 CUDA 可用,将模型移动到 GPU
if torch.cuda.is_available():
model = model.to('cuda')
print(next(model.parameters()).device) # 输出:cuda:0
2. 强制使用 CPU(即使 GPU 可用)
有时候,即使 GPU 可用,你可能希望强制代码在 CPU 上运行:
import torch
# 强制使用 CPU
device = torch.device('cpu')
x = torch.tensor([1, 2, 3], device=device)
model = model.to(device)
鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。
更多推荐
所有评论(0)