大家都觉得Google Colab 就是一个可以直接在浏览器里写 Python 的免费笔记本,于是把它当成“在线的IDE”。实际上,它背后是一套完整的云端计算环境,核心本质是把远程的服务器(配有 GPU/TPU)当成本地的 Jupyter Notebook,把代码、库、数据和算力全部交给 Google 的数据中心处理。下面我们把这个核心拆开来聊聊,顺带给大家一份从零到能跑起深度学习模型的完整实战教程。
一、核心本质到底是什么?
1️⃣ 代码不在本机跑——所有的 .ipynb 文件其实是保存在 Google Drive 里,点一下运行,背后会把代码发送到 Google 的虚拟机上执行。
2️⃣ 算力是共享的免费 GPU——Google 为每个登录用户提供若干免费的 GPU(常见的有 Tesla T4 和 K80),但这些资源是池子里的,谁抢到谁用,使用时间和配额都有严格限制。
3️⃣ 环境是预装好的——从 TensorFlow、PyTorch 到常用的科学计算库,几乎全都有,省去了本地装环境的痛苦。
4️⃣ 数据只能挂载 Drive——虚拟机的本地磁盘会在会话结束后被清空,唯一持久化的地方是 Drive,所以所有数据、模型、日志都要手动搬进去。
二、从零开始的上手流程(纯中文大白话)
- ① 准备 Google 账号:先要有个能收验证码的手机号,国内注册比较麻烦,可以先用海外号码或找代办。账号建好后,记得把 Drive 空间扩容到至少 15 GB(免费版)或买个基础套餐,后面上传数据会用到。
- ② 新建 Notebook:进入 Colab 官网,点左上角的“新建 Notebook”。系统会自动在 Drive 的根目录创建一个
Colab Notebooks文件夹,所有笔记本都会保存在这里。 - ③ 挂载 Drive:在第一格代码里写
from google.colab import drive drive.mount('/content/drive')
运行后会弹出授权链接,点进去授权后复制验证码回粘贴,就能在/content/drive看到自己的 Drive。 - ④ 设置硬件加速:点击页面上方“运行时 → 更改运行时类型”,在“硬件加速器”里挑 GPU(如果想省时间可以选 高内存 模式),点保存。这样后面运行的代码都会在 GPU 上跑。
- ⑤ 检查 GPU 是否可用:运行
import torch print('CUDA 可用?', torch.cuda.is_available())
如果返回True,说明已经成功连上了 Google 的显卡。 - ⑥ 上传/下载数据:
- 小文件(几 MB)可以直接拖到左侧文件树里;
- 大文件建议先放在 Drive,然后在 Notebook 里用
!cp或!tar -xzvf复制到本地/content,因为/content的读写更快。
- ⑦ 安装缺失的库:Colab 自带的库已经很多,但如果项目用到的库不在列表里,只要在代码块前加
!前缀即可,例如!pip install tqdm。 - ⑧ 运行代码块:每一块都像普通 Jupyter 那样,点左侧的播放键或按 Shift+Enter。如果一次点了好几个,Colab 会排队执行,等前面的跑完再跑后面的。
- ⑨ 保存和分享:所有改动会自动同步到 Drive,想和同学合作,只要右上角点“分享”,把链接发出去,对方打开后就能直接编辑。
三、实战案例:在 Colab 上跑一个小的图像分类模型
下面用一个经典的 CIFAR‑10 数据集演示完整流程,代码里已经加入了最基本的 checkpoint(断点续传)逻辑,防止跑到一半因为会话超时被强行终止。
# 1. 挂载 Drive
from google.colab import drive
drive.mount('/content/drive')
# 2. 下载数据(如果已经在 Drive 里就跳过)
!wget -O /content/cifar10.tar.gz https://.../cifar10.tar.gz
!tar -xzvf /content/cifar10.tar.gz -C /content
# 3. 引入库
import torch, torchvision
from torch import nn, optim
from torch.utils.data import DataLoader
# 4. 数据加载器
train_set = torchvision.datasets.CIFAR10(root='/content/cifar10', train=True, download=False, transform=torchvision.transforms.ToTensor())
train_loader = DataLoader(train_set, batch_size=64, shuffle=True)
# 5. 简单模型
class Net(nn.Module):
def __init__(self):
super().__init__()
self.features = nn.Sequential(
nn.Conv2d(3, 32, 3, 1, 1), nn.ReLU(), nn.MaxPool2d(2),
nn.Conv2d(32, 64, 3, 1, 1), nn.ReLU(), nn.MaxPool2d(2),
)
self.classifier = nn.Linear(64*8*8, 10)
def forward(self, x):
x = self.features(x)
x = x.view(x.size(0), -1)
return self.classifier(x)
model = Net().cuda()
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
# 6. checkpoint 保存/读取函数(核心本质:把状态写到 Drive)
import os, time
ckpt_path = '/content/drive/MyDrive/cifar10_ckpt.pth'
def save_ckpt(epoch):
torch.save({
'epoch': epoch,
'model_state': model.state_dict(),
'optim_state': optimizer.state_dict()
}, ckpt_path)
def load_ckpt():
if os.path.exists(ckpt_path):
chk = torch.load(ckpt_path, map_location='cuda')
model.load_state_dict(chk['model_state'])
optimizer.load_state_dict(chk['optim_state'])
return chk['epoch']+1
return 0
start_epoch = load_ckpt()
# 7. 训练循环(每 5 分钟手动点一次页面防止超时)
for epoch in range(start_epoch, 30):
model.train()
for imgs, lbls in train_loader:
imgs, lbls = imgs.cuda(), lbls.cuda()
optimizer.zero_grad()
out = model(imgs)
loss = criterion(out, lbls)
loss.backward()
optimizer.step()
print(f'Epoch {epoch} 完成,loss={loss.item():.4f}')
save_ckpt(epoch)
print('训练结束,模型已保存在 Drive')
整个过程不需要任何本地的 CUDA 环境,只要打开浏览器、点几下,就能把算力搬到谷歌的云端。
四、常见坑 & 省钱小技巧
- 🔧 会话超时:免费用户最长 12 小时,且空闲 30 分钟会被强制下线。解决办法是把模型训练拆成 多个 epoch,每次跑完都保存 checkpoint,第二天再接着跑。
- 💾 磁盘空间:虚拟机的
/content只有大约 60 GB,别把巨大的原始数据直接塞进去,先放在 Drive,运行时再拷贝到本地。 - ⚡ GPU 类型不稳定:有时候只能分到 T4,速度只有 P100 的一半。想要更快的卡,可以在 高内存 模式下多刷几次,或者换个账号交叉使用。
- 💳 付费 Pro/Pro+:如果每天需要大量算力,建议每月花 9 欧买 Pro,性价比最高;如果真的要 24 小时后台跑,才考虑更贵的 Pro+。
- 📂 文件组织:强烈推荐在 Drive 里专门建一个
ColabProjects文件夹,每个项目再建子文件夹,里面放data、notebook、logs,这样复制、迁移都很方便。
五、为什么这对普通人有意义?
大家都觉得买一块高端 GPU 显卡是玩 DL 的唯一途径,其实不然。只要有一部能上网的笔记本或手机,打开浏览器就能免费拿到 Google 的算力,甚至还能在同一台机器上跑 GPU + TPU 双模式。这意味着:
- 学习成本几乎为零——不需要装环境、调驱动、升级 CUDA。
- 实验成本大幅下降——不必为每一次实验买一块 10 千元的显卡。
- 协作更自然——笔记本可以直接分享链接,团队成员无需同步代码,只要点开就能看到同样的运行结果。
所以,无论是想入门机器学习的学生,还是想快速验证想法的研发者,都可以把 Colab 当作自己“云端的实验室”。只要记住它的 3 大限制(会话时长、GPU 配额、磁盘易失),配合 checkpoint、Drive 挂载和高内存模式,就能把这些限制降到几乎不可感知的程度。
六、结语
把 Google Colab 当成“免费租的 GPU 服务器”来使用,才是它的真实价值。别把它仅仅当成“可以写 Python 的网页”。把代码、数据、算力全部外包给 Google,自己只负责思路和实验设计,这才是现代 AI 开发的高效范式。祝大家玩得开心,别忘了把训练好的模型保存到 Drive,避免下次又从头再来!😊