Tensor for ‘out‘ is on CPU, Tensor for argument #1 ‘self‘ is on CPU
发布时间
阅读量:
阅读量
模型在GPU上加载后,由于之前的权重还在CPU中,导致测试时出现Tensor不一致的报错。问题出在加载模型和设置设备的顺序不正确。解决方法是先加载模型再设置设备,这样权重和设备会同步,避免报错。原文链接:
1、问题
模型训练完后进行测试,报错
该运算结果的Tensor位于CPU上,而输入Tensor位于CPU上,而期望它们位于GPU上(在addmm操作的验证过程中)
在将模型传输至GPU后,随后加载了之前训练好的模型,导致模型被加载至GPU,然而,你的网络权重仍停留在CPU上,此时会报错如下,报错部分代码:
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
net.to(device)
net.load_state_dict(torch.load('./results/bestmodel30.pth'),False)
3、解决
换下位置即可
net.load_state_dict(torch.load('./results/bestmodel30.pth'),False)
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
net.to(device)
原文链接:
全部评论 (0)
还没有任何评论哟~
