咨询Google Colab无需重复解压数据集及训练模型的方法
解决Google Colab数据/模型丢失、重复训练的方案
Colab的临时存储(/content目录)会在会话结束(关闭页面、长时间闲置等)后被清空,核心解决思路是把关键数据、模型放到持久化存储中,以下是具体可行的办法:
1. 挂载Google Drive存储数据与模型
这是最常用的方案,将数据集、训练好的模型、训练断点都存在自己的Google Drive中,每次打开Colab只需挂载Drive就能直接读取,无需重复操作:
- 挂载Drive的代码:
运行后按提示完成授权即可。from google.colab import drive drive.mount('/content/drive') - 下载Kaggle数据集时直接指定Drive路径:
配置好Kaggle API后,执行kaggle datasets download -d <数据集名称> -p /content/drive/MyDrive/你的数据集文件夹,下载完成后直接在Drive内解压,后续打开Colab可直接使用。 - 训练时将模型和断点保存到Drive:
TensorFlow示例:
PyTorch示例:model.save('/content/drive/MyDrive/模型存储路径/leaf_disease_model.h5')torch.save(model.state_dict(), '/content/drive/MyDrive/模型存储路径/leaf_disease_model.pth')
2. 提前预处理数据集并存储
如果数据集解压、预处理(如尺寸调整、归一化)耗时久,可以在一次性会话中完成预处理,将处理后的数据集打包成.npz、TFRecord或HDF5格式存到Drive。下次打开Colab直接加载预处理好的文件,跳过解压和预处理步骤。
3. 利用断点续训减少重复训练
训练时定期保存模型断点到Drive,每训练几个epoch就保存一次。如果会话中断,下次可加载最新断点继续训练,无需从头开始:
- TensorFlow断点保存示例:
checkpoint_path = "/content/drive/MyDrive/checkpoints/cp.ckpt" cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path, save_weights_only=True, verbose=1) model.fit(train_data, epochs=10, callbacks=[cp_callback]) - PyTorch断点加载示例:
checkpoint = torch.load("/content/drive/MyDrive/checkpoints/model_checkpoint.pth") model.load_state_dict(checkpoint['model_state_dict']) optimizer.load_state_dict(checkpoint['optimizer_state_dict']) start_epoch = checkpoint['epoch']
4. 可选:Colab Pro/Pro+延长会话时长
如果有预算,Colab Pro/Pro+提供更长的会话时长和“保留会话”选项,能减少频繁断开的情况,但仍建议搭配Drive存储,避免意外丢失。
内容的提问来源于stack exchange,提问作者Akhilesh
相关产品推荐
相关产品推荐

