You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac M1 MPS GPU无法解决CUDA反序列化RuntimeError问题求助

解决MPS设备读取CUDA保存的Pickle文件报错问题

问题原因

同事用NVIDIA GPU保存的pickle文件中,PyTorch张量的设备信息被标记为CUDA。直接用pickle.load读取时,张量会尝试自动加载到CUDA设备,但你的Mac没有CUDA环境,因此触发报错。即使改用torch.load,如果使用方式不正确也会继续报错。

解决方案

1. 正确使用torch.load处理设备映射

必须通过torch.load而非pickle.load加载文件,同时指定map_location参数将张量映射到CPU或MPS设备:

import torch
import pickle

# 映射到CPU加载
with open('patient_notes_agg.pickle', 'rb') as f:
    patient_notes_agg = torch.load(f, map_location=torch.device('cpu'))

# 验证加载结果
patient_notes_agg.head()

如果需要将张量加载到MPS设备(确保torch.backends.mps.is_available()返回True),可以修改map_location:

patient_notes_agg = torch.load(f, map_location=torch.device('mps'))

2. 排查报错残留问题

  • 确认文件路径正确,避免加载了错误的旧文件
  • 若同事是直接用pickle.dump保存的包含CUDA张量的对象,torch.load依然能正确处理设备映射,无需额外修改

3. 验证环境兼容性

确认你的PyTorch版本支持MPS:

import torch
print(torch.backends.mps.is_available())  # 应返回True
print(torch.__version__)  # 你的版本是1.13.0,符合要求

内容的提问来源于stack exchange,提问作者LCheng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:10:31