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

加载.pt文件时遇_pickle.UnpicklingError: invalid load key 'v'错误求助

解决PyTorch加载.pt文件时的_pickle.UnpicklingError: invalid load key, 'v'错误

错误复现

加载代码:

str1='Dataset/ALL_feats_cgqa.pt'
m = torch.load(str1)

报错信息:

File "/home/Storage1/pythonCodeArea/train.py", line 21, in load_embeddings
    m = torch.load(str1)
  File "/home/.local/lib/python3.10/site-packages/torch/serialization.py", line 1040, in load
    return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args)
  File "/home/.local/lib/python3.10/site-packages/torch/serialization.py", line 1262, in _legacy_load
    magic_number = pickle_module.load(f, **pickle_load_args)
_pickle.UnpicklingError: invalid load key, 'v'.

可能原因及修复方案

结合技术社区讨论,整理以下排查方向:

  • 文件损坏或未完整获取
    这是最常见的诱因。如果文件是从网络下载、跨设备传输的,中途中断、存储故障都可能导致文件残缺。
    修复:重新下载/复制文件,对比本地文件与源文件的大小是否一致。可以用命令ls -lh Dataset/ALL_feats_cgqa.pt查看本地文件大小。

  • 文件格式不符合PyTorch标准
    你加载的.pt文件可能并非PyTorch原生序列化格式——比如被压缩后重命名、或是其他框架导出的权重文件。
    修复:

    1. 检查文件头部魔法数:PyTorch合法.pt文件开头应为\x80\x04(对应pickle协议4)。用hexdump -n 4 Dataset/ALL_feats_cgqa.pt查看前4字节,若输出包含76(对应ASCII字符'v'),说明格式不匹配。
    2. 如果文件实际是压缩包(比如.gz后缀被改名为.pt),尝试用解压方式加载:
      import gzip
      with gzip.open(str1, 'rb') as f:
          m = torch.load(f)
      
  • PyTorch版本不兼容
    保存文件时的PyTorch版本与当前加载版本差异过大,可能导致序列化协议不兼容。
    修复:切换到保存文件时使用的PyTorch版本加载,或升级/降级当前版本至匹配范围。

  • 文件权限不足
    程序无文件读取权限时,可能因读取不完整触发错误。
    修复:执行chmod +r Dataset/ALL_feats_cgqa.pt赋予读取权限。

额外排查建议

  1. 换一台机器加载该文件,排除本地环境问题。
  2. 若文件为自行生成,检查保存阶段的代码是否异常(如保存时程序崩溃)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 11:05:12