如何在Google Colab中拆分数据集文件夹并保存到Google Drive?
数据集拆分及Google Drive存储断连问题解决方案
核心优化思路
拆分+上传两个环节的耗时叠加是触发运行时过期的主要原因,优先拆分逻辑轻量化,再优化传输环节稳定性,即可解决问题。
优化拆分流程
- 只对数据集文件路径做拆分,不提前加载完整数据:拆分环节仅操作文件名列表,全程耗时不超过10秒,从根源降低断连概率。参考Python实现代码:
from sklearn.model_selection import train_test_split # all_files为你的数据集全量文件路径列表 train_val, test = train_test_split(all_files, test_size=0.2, random_state=42) train, val = train_test_split(train_val, test_size=0.25, random_state=42) # 先保存拆分索引到本地临时文件 with open('train_split.txt', 'w') as f: f.write('\n'.join(train)) with open('val_split.txt', 'w') as f: f.write('\n'.join(val)) with open('test_split.txt', 'w') as f: f.write('\n'.join(test))
- 如需迁移完整数据到Drive,先将三个拆分集分别打包为
train.tar/val.tar/test.tar,单文件传输速度是散文件的5~10倍,避免大量小文件传输触发运行时超时。
运行时保活及传输优化
- 在Colab等在线运行环境的浏览器控制台输入以下代码,每分钟模拟一次交互操作,可延长闲置运行时长2~3小时:
setInterval(() => { document.querySelector("colab-connect-button")?.shadowRoot?.getElementById("connect")?.click() }, 60000)
- 分批次写入Drive:每上传1个打包文件就调用
drive.flush_and_unmount()刷新挂载,再重新挂载后继续下一个文件的传输,避免缓存堆积导致运行时无响应。 - 断点续传配置:上传前生成各文件的MD5校验值存入临时文件,断连重启后先比对Drive中已有文件的校验值,跳过已完成上传的部分,无需从头执行任务。
- 超过10G的超大数据集优先用Google Drive桌面端同步工具上传拆分结果,无需依赖在线运行时,稳定性更高。
内容的提问来源于stack exchange,提问作者emma
相关产品推荐
相关产品推荐

