从零上手谷歌Colab:免费GPU环境配置与个人数据集加载实战

张开发
2026/5/14 4:35:00 15 分钟阅读
从零上手谷歌Colab:免费GPU环境配置与个人数据集加载实战
1. 为什么选择谷歌Colab第一次听说谷歌Colab是在去年参加一个机器学习比赛的时候。当时我的笔记本显卡还是GTX 1050跑个ResNet都要等半天更别提训练YOLOv3这种大模型了。队友轻描淡写地说了句用Colab啊从此打开了我深度学习的新世界大门。Colab全称Colaboratory是谷歌提供的免费Jupyter笔记本服务。最吸引人的是它免费提供Tesla T4或K80 GPU对于我这种预算有限的学生党简直是救命稻草。实测下来同样的YOLOv3模型训练Colab的GPU比我的笔记本快了近10倍。而且所有环境都预装好了不用折腾CUDA和cuDNN这些让人头疼的依赖。不过Colab也不是完全没有限制。免费版有以下几点需要注意连续使用12小时后会自动断开连接闲置超过90分钟会话会被终止GPU类型不能自主选择Pro用户可以选存储空间依赖Google Drive的15GB免费额度2. 从零开始配置Colab环境2.1 创建你的第一个Colab笔记本打开浏览器访问Google Drive在空白处右键选择更多→Google Colaboratory。如果没看到这个选项可以点击新建→更多→关联更多应用搜索Colab并添加。我建议先在Drive里创建一个专用文件夹比如MyColabProjects这样能保持项目整洁。创建成功后你会看到一个熟悉的界面——没错就是Jupyter Notebook的即视感2.2 启用GPU加速这是最关键的一步。点击顶部菜单栏的运行时→更改运行时类型在硬件加速器下拉框中选择GPU。保存后可以通过运行以下代码验证import tensorflow as tf tf.test.gpu_device_name()如果输出类似/device:GPU:0的内容说明GPU已经成功启用。想查看具体显卡型号可以运行!nvidia-smi这里有个小技巧如果你需要更强大的GPU可以尝试在深夜或清晨连接这时更容易分配到Tesla T4免费用户最高配置。3. 连接Google Drive加载数据集3.1 授权挂载云端硬盘Colab最强大的功能之一就是可以直接访问Google Drive里的文件。运行以下代码会生成授权链接from google.colab import drive drive.mount(/content/drive)点击链接登录你的Google账号复制验证码粘贴回输入框。成功后你会看到Mounted at /content/drive的提示。现在所有文件都可以通过/content/drive/MyDrive/路径访问了。3.2 高效管理数据集我习惯把数据集放在Drive的特定文件夹中比如/MyDrive/Datasets/。对于大型数据集超过1GB建议先压缩成zip文件上传然后在Colab中解压!unzip /content/drive/MyDrive/Datasets/custom_dataset.zip -d /content/这样比直接上传大量小文件要快得多。记得解压后使用!rm删除压缩包节省空间。4. 实战加载自定义图像数据集4.1 使用PIL处理图像假设我们有个猫狗分类数据集目录结构如下/Datasets/ ├── train/ │ ├── cat/ │ └── dog/ └── test/ ├── cat/ └── dog/加载单张图像的典型代码如下from PIL import Image import matplotlib.pyplot as plt img_path /content/drive/MyDrive/Datasets/train/cat/cat001.jpg img Image.open(img_path) plt.imshow(img) plt.axis(off) plt.show()4.2 使用TensorFlow Data API对于正式训练建议使用更专业的数据管道import tensorflow as tf train_ds tf.keras.utils.image_dataset_from_directory( /content/drive/MyDrive/Datasets/train, image_size(256, 256), batch_size32 ) val_ds tf.keras.utils.image_dataset_from_directory( /content/drive/MyDrive/Datasets/test, image_size(256, 256), batch_size32 )这个方法会自动根据子文件夹名称生成标签还能进行图像大小统一和批量处理。5. 高级技巧与避坑指南5.1 会话保持技巧Colab最让人头疼的问题就是运行时断开。我总结了几种应对方法使用setInterval自动点击连接在浏览器控制台运行function ClickConnect(){ console.log(保持连接); document.querySelector(colab-connect-button).click() } setInterval(ClickConnect, 60*1000)安装pyautogui模拟鼠标移动!pip install pyautogui import pyautogui pyautogui.moveTo(100, 100, duration1)付费升级Colab Pro适合重度用户5.2 内存优化策略当遇到内存不足错误时可以尝试减少batch_size使用tf.data.Dataset.cache()缓存数据及时清理不再使用的变量import gc del model gc.collect()6. 完整YOLOv3训练示例最后分享一个真实案例。我在Colab上训练自定义YOLOv3模型时完整的流程如下克隆Darknet仓库!git clone https://github.com/AlexeyAB/darknet %cd darknet !sed -i s/OPENCV0/OPENCV1/ Makefile !sed -i s/GPU0/GPU1/ Makefile !make准备数据集配置文件with open(data/obj.data, w) as f: f.write(classes 2\n) f.write(train data/train.txt\n) f.write(valid data/test.txt\n) f.write(names data/obj.names\n) f.write(backup backup/)开始训练!./darknet detector train data/obj.data cfg/yolov3.cfg darknet53.conv.74 -dont_show整个过程大约需要6-8小时COCO数据集建议使用nohup防止中断!nohup ./darknet detector train data/obj.data cfg/yolov3.cfg darknet53.conv.74 log.txt 训练完成后模型会自动保存到backup/目录。记得及时下载到本地或备份到Drive因为Colab的临时存储会在会话结束后清空。

更多文章