为了账号安全,请及时绑定邮箱和手机立即绑定

如何修复pytorch中的“输入和隐藏张量不在同一设备上”

如何修复pytorch中的“输入和隐藏张量不在同一设备上”

湖上湖 2022-06-07 16:35:50
当我想将模型放在 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 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

您需要将模型、输入和目标移动到 Cuda:

if torch.cuda.is_available():
   model.cuda()
   inputs = inputs.cuda() 
   target = target.cuda()


查看完整回答
反对 回复 2022-06-07
?
元芳怎么了

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)


查看完整回答
反对 回复 2022-06-07
  • 2 回答
  • 0 关注
  • 202 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信