当我想将模型放在 GPU 上时,我收到以下错误:“RuntimeError:输入和隐藏张量不在同一个设备上,在 cuda:0 找到输入张量,在 cpu 找到隐藏张量”但是,以上所有内容都已放在 GPU 上:for m in model.parameters(): print(m.device) #return cuda:0if torch.cuda.is_available(): model = model.cuda() test = test.cuda() # test is the InputWindows 10 服务器Pytorch 1.2.0 + cuda 9.2cuda 9.2cudnn 7.6.3 用于 cuda 9.2
2 回答
![?](http://img1.sycdn.imooc.com/54584cde0001d19202200220-100-100.jpg)
万千封印
TA贡献1891条经验 获得超3个赞
您需要将模型、输入和目标移动到 Cuda:
if torch.cuda.is_available(): model.cuda() inputs = inputs.cuda() target = target.cuda()
![?](http://img1.sycdn.imooc.com/5458471300017f3702200220-100-100.jpg)
元芳怎么了
TA贡献1798条经验 获得超7个赞
当 PyTorch 尝试计算存储在 CPU 上的张量和 GPU 上的张量之间的操作时,会发生此错误。在高层次上,有两种类型的张量——你的数据的张量和模型参数的张量,两者都可以复制到同一个设备,如下所示:
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
data = data.to(device)
model = model.to(device)
添加回答
举报
0/150
提交
取消