Pytorch 类型错误:Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensor.
Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensorPytorcht调试过程中,将数据传入模型,进行计算。出现这个error,表明你的数据格式有问题。也许模型是GPU上的,参数是CPU类型。也许模型是CPU,参数是GPU类型。这是由于用了.cuda()进行转换。两个方法可以解决。1....
·
Expected object of type torch.FloatTensor but found type torch.cuda.FloatTensor
Pytorcht调试过程中,将数据传入模型,进行计算。出现这个error,表明你的数据格式有问题。也许模型是GPU上的,参数是CPU类型。也许模型是CPU,参数是GPU类型。这是由于用了.cuda()进行转换。两个方法可以解决。
1. 既然需要FloatTensor,就强制转换你的模型和数据为cpu,就将GPU的model和input转换为CPU。
device1=torch.device("cpu")
model_ft = model_ft.to(device1)#将模型转换为cpu版本。
model_ft.train()
inputs = inputs.to(device1)#将输入数据转换为CPU版本。
labels = labels.to(device1)#将label转换为CPU版本。
output = model_ft(inputs)
_,preds = torch.max(output,1)
2. 将模型和数据转换成GPU版本,既然参数是cuda.FloatTensor,说明模型的参数是cuda类型的。强制转换输入和模型在GPU上就可以。
device1=torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model_ft = model_ft.to(device1)#将模型转换为GPU版本。
model_ft.train()
inputs = inputs.to(device1)#将输入数据转换为GPU版本。
labels = labels.to(device1)#将label转换为GPU版本。
output = model_ft(inputs)
_,preds = torch.max(output,1)
欢迎来到FlagOS开发社区,这里是一个汇聚了AI开发者、数据科学家、机器学习爱好者以及业界专家的活力平台。我们致力于成为业内领先的Triton技术交流与应用分享的殿堂,为推动人工智能技术的普及与深化应用贡献力量。
更多推荐
所有评论(0)