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

运行torch.load加载模型文件报错OSError: [Errno 22]如何解决?

解决PyTorch加载模型时的OSError路径错误

这个问题我之前也踩过坑,本质是Python字符串的转义机制在搞鬼!

错误原因

你写的路径'..\10_epoch_model_state.pt'里,\1会被Python当成八进制转义字符(对应ASCII里的退格符\x08),所以实际解析后的路径变成了'..\x08_epoch_model_state.pt',系统自然找不到这个不存在的文件,就抛出了OSError: [Errno 22] Invalid argument。

三种修复方法

随便选一种都能解决问题:

  • 方法1:用正斜杠代替反斜杠(最推荐,跨平台通用)

    state = torch.load('../10_epoch_model_state.pt', map_location=lambda storage, loc: storage)
    

    正斜杠在Windows和Linux系统下都能被Python正确识别,完全避免转义问题。

  • 方法2:使用原始字符串(前缀加r)
    在字符串前加r,Python会按字面意思处理所有字符,忽略转义:

    state = torch.load(r'..\10_epoch_model_state.pt', map_location=lambda storage, loc: storage)
    
  • 方法3:转义反斜杠(写两个反斜杠)
    把单个反斜杠改成两个,让Python解析为一个普通的反斜杠:

    state = torch.load('..\\10_epoch_model_state.pt', map_location=lambda storage, loc: storage)
    

内容的提问来源于stack exchange,提问作者Fàt Hïã L'GhrîBì

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:35:40