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

当我想将模型放在 GPU 上时,我收到以下错误:


“RuntimeError:输入和隐藏张量不在同一个设备上,在 cuda:0 找到输入张量,在 cpu 找到隐藏张量”


但是,以上所有内容都已放在 GPU 上:


for m in model.parameters():

    print(m.device) #return cuda:0

if torch.cuda.is_available():

    model = model.cuda()

    test = test.cuda() # test is the Input

Windows 10 服务器

Pytorch 1.2.0 + cuda 9.2

cuda 9.2

cudnn 7.6.3 用于 cuda 9.2


湖上湖
浏览 381回答 2
2回答

万千封印

您需要将模型、输入和目标移动到 Cuda:if torch.cuda.is_available():    model.cuda()    inputs = inputs.cuda()     target = target.cuda()

元芳怎么了

当 PyTorch 尝试计算存储在 CPU 上的张量和 GPU 上的张量之间的操作时,会发生此错误。在高层次上,有两种类型的张量——你的数据的张量和模型参数的张量,两者都可以复制到同一个设备,如下所示:device = torch.device("cuda" if torch.cuda.is_available() else "cpu")data = data.to(device)model = model.to(device)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python