本文介绍了如何修复pytorch中的“输入和隐藏张量不在同一设备上"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

When I want to put the model on the GPU, I get the following error:

运行时错误:输入张量和隐藏张量不在同一设备上,在 cuda:0 处找到输入张量,在 cpu 处找到隐藏张量"

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

However, all of the above had been put on the 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


Windows 10 server
Pytorch 1.2.0 + cuda 9.2
cuda 9.2
cudnn 7.6.3 for cuda 9.2

推荐答案

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

You need to move the model, the inputs, and the targets to Cuda:

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

这篇关于如何修复pytorch中的“输入和隐藏张量不在同一设备上"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-18 20:56
查看更多