今天用pytorch跑完一个分类模型,准备用几张图片验证一下模型时,报错了:

说输入类型和网络参数类型不匹配,一个是CUP类型,一个是GPU类型,上网搜解决方法如下:
既然网络参数是GPU类型,那解决方法就是将输入类型转变为GPU类型,需要使用到cuda,没有cuda就解决不了。实现方法有两种:
1. device = torch.device('cuda:0')
inputs = inputs.to(device)
2. inputs = inputs.cuda()
#具体代码:
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
print(torch.cuda.is_available())
inputs = inputs.to(device) # 方法一:将input这个tensor转换成了CUDA 类型
inputs = inputs.cuda() # 方法二:将input这个tensor转换成了CUDA 类型
但是,以上方法并不起作用,具体问题可以先找到报错文件:

进入此文件

找到加载模型这块,由于我这个模型是在GPU上训练的,在加载时,就需要指定参数map_location=torch.device(“cup”)【torch后面的.device要根据自己定义的GPU对象,我的是device】,将GUP中的模型映射到CUP中,再次运行,问题解决!
在尝试用PyTorch进行模型验证时遇到输入与网络参数类型不匹配的问题,错误指出一个是CPU类型,另一个是GPU类型。解决方法包括将输入数据转移到GPU设备上,使用`torch.device('cuda:0')`或`.cuda()`方法。然而,这些常规方法在这篇博客的特定情况下未解决问题。最终,博主发现需要在加载模型时指定`map_location=torch.device('cpu')`来将GPU中的模型映射到CPU,从而使问题得到解决。

4585

被折叠的 条评论
为什么被折叠?



