今天用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中,再次运行,问题解决!