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

使用torch.load()报错_pickle.UnpicklingError: could not find MARK求助

解决torch.load时出现_pickle.UnpicklingError: could not find MARK的问题

可能的原因及修复方案:

  • 模型文件损坏:这是最常见的诱因,比如保存过程中断、磁盘空间不足、文件传输时丢包。
    • 重新从可靠渠道获取模型文件,或重新训练并保存模型。
    • 用哈希校验工具(如md5sum)对比原始文件与本地文件的哈希值,确认文件完整性。
  • 文件打开方式错误:若手动打开文件后调用torch.load,必须用二进制只读模式:
    with open(best_model_file, 'rb') as f:
        state = torch.load(f)
    
  • PyTorch版本不兼容:保存模型的版本与加载时的版本差异过大,会导致序列化格式不匹配。
    • 升级/降级PyTorch至保存模型时的版本,或保存时指定torch.save(..., _use_new_zipfile_serialization=False)适配旧版本。
  • 路径或文件有效性问题:确认best_model_file指向的是真实存在的模型文件,而非目录或空文件。
  • 磁盘权限问题:若文件所在目录无读取权限,会导致读取不完整。检查并调整文件权限,确保当前用户可读取。

注意:state.seek(0)仅对已打开的文件对象有效,直接传文件路径给torch.load时,该操作完全无效——因为torch.load内部会重新打开文件,之前的seek操作对它没有作用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 01:55:57