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

使用torch.save保存模型权重时遇父目录不存在RuntimeError求助

解决torch.save()保存权重时的目录不存在报错

核心问题排查

首先注意到报错中的目录路径和你代码里的path值不一致:

  • 报错目录:./checkpoints/informer_powerdata2021_ftMS_sl192_ll96_pl48_dm512_nh8_el2_dl1_df2048_atprob_fc5_ebtimeF_dtTrue_mxTrue_test_0
  • 你的path值:./checkpoints/informer_powerdata2021_ftMS_sl96_ll48_pl24_dm512_nh8_el2_dl1_df2048_atprob_fc5_ebtimeF_dtTrue_mxTrue_test_0

这说明代码运行时实际使用的路径和你预期的path不符,大概率是生成path的逻辑中参数(比如序列长度sl、标签长度ll等)在训练过程中被修改,导致动态生成的目录和你预先创建的不一致。

解决方案步骤

1. 确认并修正路径一致性

在调用torch.save()前添加打印语句,确认实际使用的路径:

print(f"当前保存路径:{path+'/'+'checkpoint.pth'}")
torch.save(model.state_dict(), path+'/'+'checkpoint.pth')

对比打印的路径和报错的路径,找到参数不一致的地方,修正path生成逻辑。

2. 强制递归创建目录(避免层级缺失)

即使你认为目录已创建,也可能存在父目录层级未完全生成的情况。使用os.makedirs递归创建目录,并设置exist_ok=True避免重复创建报错:

import os

# 先创建目录(含所有父层级)
os.makedirs(path, exist_ok=True)
# 用os.path.join拼接路径,避免跨平台问题
torch.save(model.state_dict(), os.path.join(path, 'checkpoint.pth'))

3. 检查目录权限

如果上述步骤无效,检查目标目录的读写权限:

  • Linux/macOS:执行chmod -R 755 ./checkpoints赋予读写权限
  • Windows:右键目录→属性→安全,确保当前用户有写入权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:32:42