反序列化保存在 GPU 上的 GPU 上的变量



我将参数变量保存在我的计算机上(配备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'))

最新更新