1、判断gpu是否可被pytorch调用:
torch.cuda.is_available()
返回值为ture表示gpu可用,返回值为false表示gpu不可用。
2、将代码从cpu转为gpu:
需要给网络模型、数据加上:.cuda():
for x, y in train_loader:
x = x.cuda() //数据
y = y.cuda() //标签
model.cuda() //模型
或给网络模型、数据加上:.to(device)
device = torch.device(“cuda”) #gpu
for x, y in train_loader:
x = x.to(device) //数据
y = y.to(device) //标签
model = model.to(device) //模型
3、补充:选择指定gpu:
device = torch.device(“cuda:1”) #1号gpu
device = 'cuda'
torch.cuda.set_device(gpu_id) #单卡
torch.cuda.set_device('cuda:'+str(gpu_ids)) #可指定多个卡
model.cuda(gpu_id) # gpu_id为int类型变量,单卡
model.cuda('cuda:'+str(gpu_ids)) #可指定多张个卡,如:'cuda:0,1'
// 在代码中指定
import os
os.environ['CUDA_VISIBLE_DEVICES'] = gpu_ids
// 在命令行中执行代码时指定
CUDA_VISIBLE_DEVICES=gpu_ids python3 train.py
选择指定gpu参考:https://zhuanlan.zhihu.com/p/166161217
将指定数据移动到cpu:
x_cpu = x_gpu.cpu():将数据移动到cpu