个人版 D2L 学习代码库。
- 按照《动手学深度学习》的教学顺序学习
- 保留核心模型与训练思路
- 代码实现脱离
d2l包 - 本地和 Colab / Kaggle 都能直接运行
目前已完成:
chapter3.pychapter4.pychapter5.pychapter6.pychapter7.pychapter8.pychapter9.pychapter10.pychapter11.pychapter12.pychapter13.pychapter14.pychapter15.py- 通用轻量工具层
mini_d2l.py - 轻量检查脚本
smoke_test.py - Colab 模板
colab_template.ipynb
-
mini_d2l.py 轻量工具层,替代原来常用的
d2l功能,包括数据加载、训练循环、词表、设备选择等。 -
chapter3.py 到 chapter15.py 章节代码。默认入口不会直接开始长时间训练,而是打印本章可用函数,建议你按需手动调用。
-
smoke_test.py 整仓轻量检查脚本。适合在 Colab 开始正式训练前先跑一遍,确认模块导入、基础 shape 检查和跨章节依赖都没有问题。
-
colab_template.ipynb 用于在 Colab 上运行本仓库代码的模板 notebook。
-
requirements-colab.txt Colab 最小依赖。
建议使用你现有的 conda 环境,至少保证这些包可用:
pip install torch torchvision matplotlib numpy pandas然后直接运行某一章:
python chapter3.py
python chapter6.py
python chapter8.py
python chapter11.py
python chapter12.py
python chapter13.py
python chapter14.py
python chapter15.py
python smoke_test.py默认情况下,这些脚本只会打印可用入口,不会自动训练。
真正运行实验时,推荐在 Python/Colab 中显式导入模块后调用目标函数,而不是修改脚本文件本身。
例如:
import chapter9
import chapter10
import chapter11
import chapter12
import chapter13
import chapter14
import chapter15
chapter9.inspect_seq2seq_shapes()
chapter10.run_transformer_translation(num_epochs=50)
chapter11.demo_schedulers(num_steps=10)
chapter12.inspect_hardware()
chapter13.inspect_anchor_shapes()
chapter14.inspect_bert_shapes()
chapter15.inspect_nli_model()chapter3到chapter7只依赖mini_d2l.pychapter8主要自包含,但也会使用mini_d2l.py的通用训练与下载工具chapter9依赖mini_d2l.pychapter10依赖mini_d2l.py和chapter9.pychapter11依赖mini_d2l.pychapter12依赖mini_d2l.py和chapter7.pychapter13依赖mini_d2l.py、chapter7.py与torchvisionchapter14依赖mini_d2l.py和chapter10.pychapter15依赖mini_d2l.py、chapter14.py
这意味着:
- 把整个仓库目录一起上传到 Colab 是安全的
- 只单独上传
chapter10.py不够,因为它会导入chapter9.py chapter9/10第一次运行翻译相关实验时会下载数据到仓库内data/目录
最简单的方式:
- 打开
colab_template.ipynb - 在 Colab 里切换到 GPU runtime
- 运行安装和环境检查单元
- 先运行 smoke test / 轻量检查单元
- 再按章节逐个打开你要跑的实验
如果你想从 GitHub 克隆到 Colab,仓库地址就是:
https://github.com/sad-and-bad1231/d2l-code.git
chapter3/4/6/7里的 Fashion-MNIST 使用torchvision.datasets.FashionMNISTchapter8/9的文本数据会下载到仓库内data/目录chapter10的翻译与 Transformer 相关实验依赖chapter9中的数据与 seq2seq 基础设施chapter11的优化器实验默认使用空气动力学噪声数据集,并会下载到仓库内data/目录chapter12的多 GPU/性能实验会根据当前设备环境自动降级;在 Colab 单 GPU 下可以运行轻量 demo 和 concise 训练chapter13的检测/分割/风格迁移部分默认只做轻量检查;涉及 VOC、香蕉检测或 Kaggle 数据时会按需下载或依赖你本地提供的数据目录 其中 TinySSD 当前提供的是调试训练入口,用于验证计算图,不代表完整检测训练实现chapter14的词向量/BERT 预训练默认只做轻量检查;PTB、WikiText-2、GloVe 等数据会按需下载chapter15的 IMDb、SNLI 等下游任务入口默认不自动训练;数据会在你手动运行时按需下载- 当前默认实现优先保证“教学流程清楚 + Colab 可运行”,不是工业级训练框架
后续可以继续补:
- 更完整的 README 示例图和训练结果
- 更细的工具层拆分,例如
trainer.py、data.py、metrics.py