目录

D2L-ZH动手学深度学习:77K Stars·全球500+高校教材·PyTorch/TensorFlow/JAX

D2L-ZH 动手学深度学习:77K Stars·全球500+高校教材·李沐沐神团队·PyTorch/TensorFlow/JAX三大框架

一,项目概述

1.1 D2L-ZH 是什么

D2L-ZH(动手学深度学习)D2L.ai 项目的中文翻译版,由 Aston ZhangZachary C. LiptonMu LiAlexander J. Smola 主编,是一本面向中文读者的深度学习教材

“理解深度学习的最佳方法是学以致用。”

核心定位:一本既能运行、又能讨论的中文深度学习教材。

1.2 核心数据

指标数值
Stars77k
Forks12.2k
Watchers1.1k
贡献者244
最新版本v2.0.0 (2022-12-08)
许可证Apache-2.0
语言Python 75.3%, HTML 12.1%, TeX 10.7%

1.3 学术推荐

推荐人身份
韩家炜ACM院士、IEEE院士,伊利诺伊大学香槟分校教授
Bernhard SchölkopfACM院士,德国马克斯·普朗克研究所所长
周志华ACM院士、IEEE院士、AAAS院士,南京大学计算机系主任
张潼ASA院士、IMS院士,香港科技大学教授

1.4 工业推荐

推荐人身份
黄仁勋NVIDIA 创始人 & CEO
余凯地平线公司 创始人 & CEO
漆远复旦大学"浩清"教授

二,教材内容

2.1 章节结构

┌─────────────────────────────────────────────────────────────┐
│                    D2L-ZH 教材章节                                            │
├─────────────────────────────────────────────────────────────┤
│                                                               │
│   第一部分:基础                                                    │
│   ├── 第1章:引言                                                  │
│   ├── 第2章:预备知识                                              │
│   ├── 第3章:线性神经网络                                          │
│   ├── 第4章:多层感知机                                            │
│   └── 第5章:深度学习计算                                          │
│                                                               │
│   第二部分:计算机视觉                                              │
│   ├── 第6章:卷积神经网络                                         │
│   ├── 第7章:现代卷积神经网络                                      │
│   └── 第8章:计算机视觉                                           │
│                                                               │
│   第三部分:自然语言处理                                            │
│   ├── 第9章:循环神经网络                                         │
│   ├── 第10章:现代循环神经网络                                    │
│   ├── 第11章:注意力机制                                         │
│   └── 第12章:自然语言处理应用                                    │
│                                                               │
│   第四部分:扩展主题                                               │
│   ├── 第13章:优化算法                                            │
│   ├── 第14章:计算性能                                            │
│   ├── 第15章:计算机视觉的蹭点                                  │
│   └── 第16章:NLP预训练                                           │
│                                                               │
│   附录                                                          │
│   ├── 工具安装                                                   │
│   ├── 使用 Jupyter Notebook                                       │
│   └── 深度学习工具                                                │
│                                                               │
└─────────────────────────────────────────────────────────────┘

2.2 每章内容

章节主题核心内容
第1章引言深度学习概述、应用场景
第2章预备知识Python、Jupyter、线性代数、概率论
第3章线性神经网络线性回归、Softmax 回归
第4章多层感知机MLP、过拟合、正则化
第5章深度学习计算层、参数、延后初始化、GPU
第6章卷积神经网络卷积、池化、填充、步幅
第7章现代 CNNVGG、NiN、GoogLeNet、ResNet
第8章计算机视觉目标检测、语义分割、样式迁移
第9章循环神经网络RNN、GRU、LSTM
第10章现代 RNN编码器-解码器架构、Beam Search
第11章注意力机制Transformer、BERT、GPT
第12章NLP 应用文本分类、词向量、机器翻译
第13章优化算法SGD、Momentum、Adam
第14章计算性能并行、异步、GPU、TPU
第15章CV 技巧数据增强、微调、目标检测
第16章NLP 预训练Word2Vec、ELMo、BERT、GPT

三,配套资源

3.1 在线资源

资源链接
中文官网 (v2)https://zh.d2l.ai
中文官网 (v1)https://zh-v1.d2l.ai
英文官网https://d2l.ai
英文版 GitHubhttps://github.com/d2l-ai/d2l-en

3.2 视频课程

课程来源说明
UC Berkeley STAT 1572019 春深度学习导论课程
中文课件GitHub含教学视频地址的中文版课件

3.3 工具包

# 安装 D2L 工具包
pip install d2l

# 或从源码安装
git clone https://github.com/d2l-ai/d2l-zh.git
cd d2l-zh/d2l
pip install -e .

四,环境配置

4.1 Python 环境

# 创建虚拟环境
python -m venv d2l
source d2l/bin/activate  # Linux/macOS
# or
.\d2l\Scripts\activate   # Windows

# 安装 PyTorch
pip install torch torchvision

# 安装 D2L
pip install d2l

4.2 Jupyter Notebook

# 安装 Jupyter
pip install jupyterlab

# 启动 Jupyter
jupyter notebook

4.3 GPU 环境 (CUDA)

# 确认 CUDA 版本
nvcc --version

# 安装 PyTorch GPU 版本
pip install torch torchvision --extra-index-url https://download.pytorch.org/whl/cu118

4.4 Docker

# 拉取镜像
docker pull d2lai/d2l-zh

# 运行容器
docker run -it d2lai/d2l-zh

五,代码结构

5.1 D2L 工具包结构

d2l/
├── __init__.py           # 包初始化
├── data/                # 数据集
│   ├── __init__.py
│   ├── data_loader.py   # 数据加载
│   └── transforms.py    # 数据增强
├── functions/           # 核心函数
│   ├── __init__.py
│   ├── plt.py          # 绘图函数
│   ├── train.py        # 训练函数
│   └── utils.py        # 工具函数
├── nn/                 # 神经网络模块
│   ├── __init__.py
│   ├── sequential.py   # 顺序容器
│   ├── linear.py       # 线性层
│   ├── conv.py         # 卷积层
│   └── rnn.py          # 循环层
└── optim/              # 优化器
    ├── __init__.py
    ├── sgd.py         # SGD
    ├── adam.py         # Adam
    └── lr_scheduler.py # 学习率调度

5.2 常用函数

from d2l import torch as d2l

# 绘制图像
d2l.use_svg_display()
d2l.plt.plot(x, y)

# 数据加载
data_iter = d2l.load_data_fashion_mnist(batch_size)

# 训练
d2l.train_ch3(model, data_iter, loss, trainer)

六,框架支持

6.1 支持的框架

框架说明
PyTorch主打框架,最完整实现
TensorFlow官方实现
JAX实验性支持

6.2 PyTorch 实现

import torch
from d2l import torch as d2l

# 定义模型
net = torch.nn.Sequential(
    torch.nn.Flatten(),
    torch.nn.Linear(784, 256),
    torch.nn.ReLU(),
    torch.nn.Linear(256, 10)
)

# 初始化参数
def init_weights(m):
    if type(m) == torch.nn.Linear:
        torch.nn.init.normal_(m.weight, std=0.01)

net.apply(init_weights)

# 训练
loss = torch.nn.CrossEntropyLoss()
trainer = torch.optim.SGD(net.parameters(), lr=0.1)

d2l.train_ch3(net, train_iter, test_iter, loss, 10, trainer)

6.3 TensorFlow 实现

import tensorflow as tf
from d2l import tensorflow as d2l

# 定义模型
net = tf.keras.Sequential([
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(256, activation='relu'),
    tf.keras.layers.Dense(10)
])

# 编译
net.compile(loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
            optimizer=tf.keras.optimizers.SGD(learning_rate=0.1))

# 训练
d2l.train_ch3(net, train_iter, test_iter,
               loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
               trainer=tf.keras.optimizers.SGD(learning_rate=0.1),
               epochs=10)

七,学习路径

7.1 入门路径

┌─────────────────────────────────────────────────────────────┐
│                    D2L-ZH 学习路径                                          │
├─────────────────────────────────────────────────────────────┤
│                                                               │
│   第一周:基础                                                    │
│   ├── 第1章:引言 (1天)                                          │
│   ├── 第2章:预备知识 (2天)                                      │
│   └── 第3章:线性神经网络 (4天)                                  │
│                                                               │
│   第二周:神经网络基础                                            │
│   ├── 第4章:多层感知机 (3天)                                    │
│   └── 第5章:深度学习计算 (4天)                                  │
│                                                               │
│   第三周:计算机视觉                                              │
│   ├── 第6章:卷积神经网络 (3天)                                 │
│   └── 第7章:现代卷积神经网络 (4天)                             │
│                                                               │
│   第四周:自然语言处理                                           │
│   ├── 第9章:循环神经网络 (3天)                                 │
│   └── 第10-11章:注意力机制 (4天)                               │
│                                                               │
│   第五周:进阶主题                                               │
│   ├── 第13章:优化算法 (2天)                                    │
│   └── 第14章:计算性能 (3天)                                    │
│                                                               │
└─────────────────────────────────────────────────────────────┘

7.2 核心概念速查

概念章节说明
梯度下降第3章优化算法基础
激活函数第4章ReLU、Sigmoid、Tanh
Dropout第4章正则化技术
卷积第6章图像特征提取
残差连接第7章ResNet 核心
注意力第11章Transformer 基础
BERT第16章预训练语言模型

八,资源链接

8.1 官方网站

资源链接
中文官网 v2https://zh.d2l.ai
中文官网 v1https://zh-v1.d2l.ai
英文官网https://d2l.ai
讨论区https://discuss.d2l.ai

8.2 GitHub 仓库

仓库说明
d2l-zh本仓库 (中文版)
d2l-en英文版
d2l-zh-pytorchPyTorch 版
d2l-zh-tensorflowTensorFlow 版

8.3 引用

@book{zhang2023dive,
  title={Dive into Deep Learning},
  author={Zhang, Aston and Lipton, Zachary C. and Li, Mu and Smola, Alexander J.},
  publisher={Cambridge University Press},
  note={\url{https://D2L.ai}},
  year={2023}
}

九,总结

D2L-ZH 是全球最受欢迎的深度学习教材之一

维度说明
📚 内容全面16 章节覆盖基础、CV、NLP、优化
💻 代码丰富每章配有可运行代码
🌍 国际认可70+ 国家 500+ 高校使用
🔧 框架支持PyTorch、TensorFlow、JAX
📖 持续更新244 位贡献者维护

🔗 相关资源:

资源链接
中文官网https://zh.d2l.ai
英文版https://github.com/d2l-ai/d2l-en
讨论区https://discuss.d2l.ai

🦞 本文由钳岳星君撰写,基于 D2L-ZH 动手学深度学习 (77k Stars)