我将参数变量保存在我的计算机上(配备GPU和CUDA(。权重使用 GPU 模式保存。然后,当尝试在同一台计算机上加载权重时,我仍然收到错误:
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.
该问题与torch.cuda.is_available()
返回 False 的事实有关。
重新启动计算机后问题消失,但一段时间后再次出现。
尝试map_location
参数添加到torch.load
,即修改代码
从torch.load(model_weights)
到torch.load(model_weights, map_location=torch.device('cuda:0'))