加载模型出现 RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available()

今天在加载模型的时候出现了这个报错

问题现象

RuntimeError: Attempting to deserialize object on a CUDA device but torch.cuda.is_available() is False. If you are running on a CPU-only machine, please use torch.load with map_location='cpu' to map your storages to the CPU.

问题分析

根据报错的提示,这个问题应该是因为模型是在GPU上训练的,然后我是在CPU上加载两者环境差异导致的,如果朋友们的电脑有CPU,那么可以参考我下面的方法

解决办法

在原来的加载方法中指定参数map_location为cpu


checkpoint = torch.load("ckpts/cdnn/model.tar")

改为

checkpoint = torch.load("ckpts/cdnn/model.tar",map_location='cpu')

猜你喜欢

转载自blog.csdn.net/binbinczsohu/article/details/107944257