nndl/nndl-practice

《神经网络与深度学习:案例与实践》第二版:10 章 PyTorch 实践、Notebook、测试与电子书。

Jupyter Notebook

3,506

154 commits

updated Sep 7, 2026

See the code

README

神经网络与深度学习:案例与实践(第二版)

邱锡鹏著 · 用 PyTorch 从零实现关键算法,再把模型用到实际任务中

本书介绍 · 下载 PDF · 快速开始 · 章节目录 · 勘误与建议

《神经网络与深度学习:案例与实践(第二版)》封面

第二版 · PyTorch 配套代码

本书把神经网络模型、深度学习原理和工程实践放在同一条学习线上:一边理解模型,一边用 PyTorch 从零实现关键组件,再把它们用于可运行的案例。

全书共 10 章,仓库提供配套 Notebook、逐章实现说明和测试。从线性模型、卷积网络和循环网络出发,逐步进入注意力机制、图神经网络、大语言模型与智能体。

适合读者:有 Python 基础、希望动手学习深度学习的学生与工程师,可搭配理论书阅读。

当前状态:第二版处于出版筹备阶段,PDF 与配套代码会随出版前修订持续更新。

快速开始

环境要求:64 位 Python 3.11+、PyTorch 2.7+。Notebook 默认使用 CPU;第 5、6、8、9、10 章包含较长训练,先按各章说明选择短程配置。

git clone https://github.com/nndl/nndl-practice.git
cd nndl-practice
python -m venv .venv

激活虚拟环境:

# macOS / Linux
source .venv/bin/activate

# Windows PowerShell
.venv\Scripts\Activate.ps1

安装 CPU 版本(Windows / Linux):

python -m pip install --upgrade pip
python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu

macOS 或 NVIDIA GPU 用户请按 PyTorch 官方安装页选择对应平台的安装命令。随后安装其余依赖并打开第一个 Notebook:

python -m pip install -r pytorch/requirements.txt
python -m jupyter notebook "pytorch/chap1实践基础/实践基础.ipynb"

第 1 章无需下载数据。第 6、8 章运行前需先准备 IMDB / LCQMC,命令与各章缓存位置见 数据准备说明

先从哪里开始

你的目标建议路径
第一次使用 PyTorch第 1 章 → 第 2 章 → 第 4 章
系统学习深度学习实践按第 1—10 章顺序学习
计算机视觉第 1 章 → 第 4 章 → 第 5 章 → 第 7 章
序列建模与 Transformer第 1 章 → 第 4 章 → 第 6 章 → 第 8 章
大语言模型与智能体第 8 章 → 第 10 章;基础薄弱时先补第 1、4 章
图神经网络第 1 章 → 第 4 章 → 第 9 章

章节目录

主题与代码入口主要实践内容
1实践基础Tensor、广播、自动微分、nn.ModuleDatasetDataLoader
2机器学习概述机器学习五要素、线性与多项式回归、RunnerV1、加州房价预测
3线性模型Logistic/Softmax 回归、手写梯度、RunnerV2、鸢尾花分类
4前馈神经网络激活函数、手算反向传播、MLP、RunnerV3、Moons 与鸢尾花分类
5卷积神经网络从零实现卷积、LeNet-5、残差网络、MNIST 与 CIFAR-10
6循环神经网络SRN、LSTM、梯度截断、变长序列与双向 LSTM
7网络优化与正则化优化器、参数初始化、BatchNorm、暂退法(Dropout)与学习率调度
8注意力机制加性注意力、缩放点积注意力、多头注意力、位置编码与 Transformer
9图神经网络GCN、GraphSAGE、GAT、GIN,以及节点级与图级任务
10大语言模型与智能体nanoGPT、解码与 KV Cache、LoRA、SFT、DPO、ReAct 与 RAG

每章目录中都有 Notebook 入口和实现要点;完整环境说明、数据集下载方式与批量执行方法见 pytorch/README.md

从 Notebook 到可复用代码

配套代码会随着章节推进,逐步搭建轻量级学习框架 pytorch/nndl/

组件学习重点
RunnerV1闭式求解、评价、预测与参数保存
RunnerV2梯度训练、验证集评价与最优模型保存
RunnerV3DataLoaderstate_dict、指标解耦与训练历史
nndl 算子与模型从基础算子、损失函数和优化器,逐步扩展到 CNN、RNN 与注意力机制

Notebook 在关键组件第一次出现时展示完整实现,后续章节则通过 from nndl import ... 复用工程化版本。这样既能看清原理,也能保持代码可维护。

测试与复现

每章都有一组 sanity 测试,用来检查关键算子、模型形状和核心结论:

python -m pytest pytorch/tests/ -v

单章测试可以直接指定文件,例如:

python -m pytest pytorch/tests/test_chap8.py -v

版本关系

内容位置说明
第二版 PyTorch 实现pytorch/本仓库当前维护的主线,共 10 章
第一版 PaddlePaddle 实现nndl/practice-in-paddle对应 2022 年出版的第一版,共 8 章
理论书第一版编程练习legacy/nndl/exercise 内容,使用 NumPy 与早期 PyTorch,作为历史归档保留

本仓库由 nndl/exercise 更名而来,旧链接会由 GitHub 自动跳转到当前地址。

代码与书稿

仓库与书稿采用相同的十章结构。出版前两边都会继续修订,因此个别代码、输出或页码可能短期不同步;遇到差异时,请同时注明书稿日期、章节、Notebook 名称和具体单元格,便于核对。

勘误与建议

欢迎通过 GitHub Issues 提交代码问题、书稿勘误和改进建议。提交前请先搜索是否已有相同问题,并尽量提供:

  • 章节与 Notebook 名称;
  • Python、PyTorch 与操作系统版本;
  • 最小复现步骤和完整报错;
  • 书稿问题对应的 PDF 页码及下载日期。

查看已有反馈 · 提交新反馈

系列资源

仓库维护说明
chinese
deep-learning
jupyter-notebook
paddlepaddle
pytorch
tutorial

Contributors

2017alan

75 commits

xpqiu

57 commits

jingjing-gong

20 commits

Schizophreni

2 commits

nndl/nndl-practice

《神经网络与深度学习:案例与实践》第二版:10 章 PyTorch 实践、Notebook、测试与电子书。

Jupyter Notebook

3,506

154 commits

updated Sep 7, 2026

See the code

README

神经网络与深度学习:案例与实践(第二版)

邱锡鹏著 · 用 PyTorch 从零实现关键算法,再把模型用到实际任务中

本书介绍 · 下载 PDF · 快速开始 · 章节目录 · 勘误与建议

《神经网络与深度学习:案例与实践(第二版)》封面

第二版 · PyTorch 配套代码

本书把神经网络模型、深度学习原理和工程实践放在同一条学习线上:一边理解模型,一边用 PyTorch 从零实现关键组件,再把它们用于可运行的案例。

全书共 10 章,仓库提供配套 Notebook、逐章实现说明和测试。从线性模型、卷积网络和循环网络出发,逐步进入注意力机制、图神经网络、大语言模型与智能体。

适合读者:有 Python 基础、希望动手学习深度学习的学生与工程师,可搭配理论书阅读。

当前状态:第二版处于出版筹备阶段,PDF 与配套代码会随出版前修订持续更新。

快速开始

环境要求:64 位 Python 3.11+、PyTorch 2.7+。Notebook 默认使用 CPU;第 5、6、8、9、10 章包含较长训练,先按各章说明选择短程配置。

git clone https://github.com/nndl/nndl-practice.git
cd nndl-practice
python -m venv .venv

激活虚拟环境:

# macOS / Linux
source .venv/bin/activate

# Windows PowerShell
.venv\Scripts\Activate.ps1

安装 CPU 版本(Windows / Linux):

python -m pip install --upgrade pip
python -m pip install torch torchvision --index-url https://download.pytorch.org/whl/cpu

macOS 或 NVIDIA GPU 用户请按 PyTorch 官方安装页选择对应平台的安装命令。随后安装其余依赖并打开第一个 Notebook:

python -m pip install -r pytorch/requirements.txt
python -m jupyter notebook "pytorch/chap1实践基础/实践基础.ipynb"

第 1 章无需下载数据。第 6、8 章运行前需先准备 IMDB / LCQMC,命令与各章缓存位置见 数据准备说明

先从哪里开始

你的目标建议路径
第一次使用 PyTorch第 1 章 → 第 2 章 → 第 4 章
系统学习深度学习实践按第 1—10 章顺序学习
计算机视觉第 1 章 → 第 4 章 → 第 5 章 → 第 7 章
序列建模与 Transformer第 1 章 → 第 4 章 → 第 6 章 → 第 8 章
大语言模型与智能体第 8 章 → 第 10 章;基础薄弱时先补第 1、4 章
图神经网络第 1 章 → 第 4 章 → 第 9 章

章节目录

主题与代码入口主要实践内容
1实践基础Tensor、广播、自动微分、nn.ModuleDatasetDataLoader
2机器学习概述机器学习五要素、线性与多项式回归、RunnerV1、加州房价预测
3线性模型Logistic/Softmax 回归、手写梯度、RunnerV2、鸢尾花分类
4前馈神经网络激活函数、手算反向传播、MLP、RunnerV3、Moons 与鸢尾花分类
5卷积神经网络从零实现卷积、LeNet-5、残差网络、MNIST 与 CIFAR-10
6循环神经网络SRN、LSTM、梯度截断、变长序列与双向 LSTM
7网络优化与正则化优化器、参数初始化、BatchNorm、暂退法(Dropout)与学习率调度
8注意力机制加性注意力、缩放点积注意力、多头注意力、位置编码与 Transformer
9图神经网络GCN、GraphSAGE、GAT、GIN,以及节点级与图级任务
10大语言模型与智能体nanoGPT、解码与 KV Cache、LoRA、SFT、DPO、ReAct 与 RAG

每章目录中都有 Notebook 入口和实现要点;完整环境说明、数据集下载方式与批量执行方法见 pytorch/README.md

从 Notebook 到可复用代码

配套代码会随着章节推进,逐步搭建轻量级学习框架 pytorch/nndl/

组件学习重点
RunnerV1闭式求解、评价、预测与参数保存
RunnerV2梯度训练、验证集评价与最优模型保存
RunnerV3DataLoaderstate_dict、指标解耦与训练历史
nndl 算子与模型从基础算子、损失函数和优化器,逐步扩展到 CNN、RNN 与注意力机制

Notebook 在关键组件第一次出现时展示完整实现,后续章节则通过 from nndl import ... 复用工程化版本。这样既能看清原理,也能保持代码可维护。

测试与复现

每章都有一组 sanity 测试,用来检查关键算子、模型形状和核心结论:

python -m pytest pytorch/tests/ -v

单章测试可以直接指定文件,例如:

python -m pytest pytorch/tests/test_chap8.py -v

版本关系

内容位置说明
第二版 PyTorch 实现pytorch/本仓库当前维护的主线,共 10 章
第一版 PaddlePaddle 实现nndl/practice-in-paddle对应 2022 年出版的第一版,共 8 章
理论书第一版编程练习legacy/nndl/exercise 内容,使用 NumPy 与早期 PyTorch,作为历史归档保留

本仓库由 nndl/exercise 更名而来,旧链接会由 GitHub 自动跳转到当前地址。

代码与书稿

仓库与书稿采用相同的十章结构。出版前两边都会继续修订,因此个别代码、输出或页码可能短期不同步;遇到差异时,请同时注明书稿日期、章节、Notebook 名称和具体单元格,便于核对。

勘误与建议

欢迎通过 GitHub Issues 提交代码问题、书稿勘误和改进建议。提交前请先搜索是否已有相同问题,并尽量提供:

  • 章节与 Notebook 名称;
  • Python、PyTorch 与操作系统版本;
  • 最小复现步骤和完整报错;
  • 书稿问题对应的 PDF 页码及下载日期。

查看已有反馈 · 提交新反馈

系列资源

仓库维护说明
chinese
deep-learning
jupyter-notebook
paddlepaddle
pytorch
tutorial

Contributors

2017alan

75 commits

xpqiu

57 commits

jingjing-gong

20 commits

Schizophreni

2 commits

Languages

Jupyter Notebook

78.1%

Python

21.9%