Skip to content

sad-and-bad1231/d2l-code

Repository files navigation

d2l-code

个人版 D2L 学习代码库。

  • 按照《动手学深度学习》的教学顺序学习
  • 保留核心模型与训练思路
  • 代码实现脱离 d2l
  • 本地和 Colab / Kaggle 都能直接运行

目前已完成:

  • chapter3.py
  • chapter4.py
  • chapter5.py
  • chapter6.py
  • chapter7.py
  • chapter8.py
  • chapter9.py
  • chapter10.py
  • chapter11.py
  • chapter12.py
  • chapter13.py
  • chapter14.py
  • chapter15.py
  • 通用轻量工具层 mini_d2l.py
  • 轻量检查脚本 smoke_test.py
  • Colab 模板 colab_template.ipynb

Open In Colab

项目结构

  • mini_d2l.py 轻量工具层,替代原来常用的 d2l 功能,包括数据加载、训练循环、词表、设备选择等。

  • chapter3.pychapter15.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()

跨章节依赖说明

  • chapter3chapter7 只依赖 mini_d2l.py
  • chapter8 主要自包含,但也会使用 mini_d2l.py 的通用训练与下载工具
  • chapter9 依赖 mini_d2l.py
  • chapter10 依赖 mini_d2l.pychapter9.py
  • chapter11 依赖 mini_d2l.py
  • chapter12 依赖 mini_d2l.pychapter7.py
  • chapter13 依赖 mini_d2l.pychapter7.pytorchvision
  • chapter14 依赖 mini_d2l.pychapter10.py
  • chapter15 依赖 mini_d2l.pychapter14.py

这意味着:

  • 把整个仓库目录一起上传到 Colab 是安全的
  • 只单独上传 chapter10.py 不够,因为它会导入 chapter9.py
  • chapter9/10 第一次运行翻译相关实验时会下载数据到仓库内 data/ 目录

Colab 运行

最简单的方式:

  1. 打开 colab_template.ipynb
  2. 在 Colab 里切换到 GPU runtime
  3. 运行安装和环境检查单元
  4. 先运行 smoke test / 轻量检查单元
  5. 再按章节逐个打开你要跑的实验

如果你想从 GitHub 克隆到 Colab,仓库地址就是:

https://github.com/sad-and-bad1231/d2l-code.git

当前说明

  • chapter3/4/6/7 里的 Fashion-MNIST 使用 torchvision.datasets.FashionMNIST
  • chapter8/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.pydata.pymetrics.py

About

This is the code portion of my learning dive into deep learning (d2l). I hope you like it.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors