无法下载Kaggle工作目录保存的AI模型,重启后文件丢失求助
Kaggle模型保存与下载问题解答
1. /kaggle/working目录的持久化特性
/kaggle/working是Kaggle Notebook的临时工作目录,仅在当前会话周期内有效:
- 当关闭笔记本、重启浏览器或会话超时后,目录内所有文件会被自动清除,无法保留
- 只有会话活跃期间文件才会存在,重启后消失属于正常机制
2. 下载按钮无响应的可能原因
- 文件未完全写入:模型/权重保存需要时间,若保存过程中点击下载,可能导致无响应
- 文件体积过大:大文件(数百MB以上)下载时可能触发浏览器或Kaggle的限流,导致按钮失效
- 浏览器问题:缓存堆积、权限限制(如浏览器禁止下载)、插件干扰都可能引发该问题
- Kaggle会话临时故障:云端服务器偶尔卡顿,可尝试刷新页面或重启会话后再试
3. 实现持久化的正确保存位置
要让文件在会话结束后仍保留,可选择以下方式:
- Kaggle Saved Datasets:将文件上传到自己的Kaggle Dataset中,后续可随时从Dataset下载或在Notebook中调用
- 关联外部云存储:在Notebook中挂载Google Drive、Dropbox等云存储,将文件保存到对应云存储目录
- Kaggle API上传:通过Kaggle API将文件直接上传到自己的Kaggle账户存储
你当前代码的问题分析
你的代码存在关键逻辑错误:
Kaggle Notebook运行在云端服务器,无法直接访问本地机器的/Users/callanmooneys/Downloads/路径,因此shutil.copy操作必然失败,生成的file://链接也无法在本地浏览器生效(云端文件与本地文件系统完全隔离)。
修正后的云端下载代码示例
若要在Kaggle Notebook中生成可直接点击的下载链接,可使用IPython的FileLink工具:
import os from IPython.display import FileLink, display save_path = '/kaggle/working/' model_name = model.input_names[0][:-6] subject = "ALL_Classification" acc = test_score[1] * 100 # 保存模型 save_id = f'{model_name}-{subject}-{acc:.2f}.h5' model_save_loc = os.path.join(save_path, save_id) model.save(model_save_loc) print(f"Model saved to {model_save_loc}") # 生成可直接点击的下载链接 display(FileLink(model_save_loc)) # 保存权重并生成下载链接 weight_save_id = f'{model_name}-{subject}-weights.h5' weights_save_loc = os.path.join(save_path, weight_save_id) model.save_weights(weights_save_loc) print(f"Weights saved to {weights_save_loc}") display(FileLink(weights_save_loc))
内容的提问来源于stack exchange,提问作者dancingbush
相关产品推荐
相关产品推荐

