第一种情况:
数据集忘记转成cuda模式提示RuntimeError: Expected object of backend CUDA but got backend CPU for argument
device = torch.cuda('cuda:0')
net = MLP()
net = net.to(device)
data = data.to(device) #而不是直接data.to(device)
target = target.cuda()
logits = net(data).cuda()
第二种情况:提示CUDA: invalid device ordinal
可能是你的显卡序列号不对,显卡是从0开始算的,或者你的显卡不支持cuda,例如1050Ti就不支持cuda(很难受。。。)
这里是cuda的支持情况列表官网
https://developer.nvidia.com/cuda-gpus#compute
以下代码可以查看你的GPU
import pycuda
from pycuda import compiler
import pycuda.driver as drv
drv.init()
print("%d device(s) found." % drv.Device.count())
for ordinal in range(drv.Device.count()):
dev = drv.Device(ordinal)
print (ordinal, dev.name())
安装pycuda可能碰到的问题“failed building wheel for pycud