本文介绍了如何修复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中的“输入和隐藏张量不在同一设备上"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!