恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
Dive into Deep Learning 前言导读:《动手学深度学习》的内容架构、d2l 工具包与一站式学习路径
首页
资讯中心
/
Dive into Deep Learning 前言导读:《动手学深度学习》的内容架构、d2l 工具包与一站式学习路径
Dive into Deep Learning 前言导读:《动手学深度学习》的内容架构、d2l 工具包与一站式学习路径
发布时间:2026/10/3 17:02:37
文档教程人工智能深度学习NLP计算机视觉强化学习【免费下载链接】d2l-enInteractive deep learning book with multi-framework code, math, and discussions. Adopted at 500 universities from 70 countries including Stanford, MIT, Harvard, and Cambridge.项目地址https://gitcode.com/gh_mirrors/d2/d2l-en点击查看免费下载本篇文章以《Dive into Deep Learning》d2l-en中文名《动手学深度学习》的开源仓库前言章节为主体梳理这本交互式深度学习教材的写作理念、三大部分内容结构、边做边学的教学法以及贯穿全书、用#save标记累积而成的d2l工具包及其多框架实现。读完本文你将理解该仓库的整体章节组织方式、d2l包的依赖与常用类/函数并能按照官方安装流程在自己的机器上搭建环境、运行 Notebook以及通过 GitHub 工作流参与本书的持续改进。前言背景深度学习从边缘学科到主流技术前言回顾了一个并不久远的事实在短短几年内深度学习从一门蓝天空想式的学术分支迅速发展为驱动计算机视觉、自然语言处理、自动语音识别、强化学习与生物医学信息学等众多领域快速进步的通用技术。今天它已经可以驱动自动驾驶汽车、通过追问澄清问题来调试代码的对话系统以及在围棋等棋类游戏中战胜人类顶尖棋手的软件智能体同时也在改变电影制作、疾病诊断的方式并在天体物理、气候建模、天气预报与生物医学等基础科学中扮演越来越重要的角色。这一背景决定了本书的出发点深度学习应用本身横跨多个学科要想真正掌握它需要同时理解五个层面的内容问题的建模动机——为什么要把问题以特定方式表述模型的数学形式——给定模型对应的数学表达优化算法——如何将模型拟合到数据统计原理——何时可以期望模型泛化到未见数据以及如何验证泛化确实发生工程技巧——如何高效训练模型、规避数值计算的陷阱并充分利用硬件。前言明确指出当时市场上没有一份资源能够同时做到保持内容更新、覆盖现代机器学习实践的足够技术深度、并且把教科书级别的讲解与可运行、干净的代码交织在一起。这正是《动手学深度学习》要填补的空白。关于本书概念、背景与代码三位一体一种融合代码、数学与 HTML 的媒介前言认为任何计算技术要发挥全部影响力都需要被充分理解、充分文档化并由成熟且维护良好的工具支撑。深度学习的学习材料面临独特挑战数学公式、定理与引用最适合用 LaTeX 管理代码最适合用 Python 描述而网页原生是 HTML 与 JavaScript。同时内容还要能作为可执行代码、实体书、可下载 PDF 以及在线网站四种形态访问。为此本书作者自建了一套工作流详见贡献章节使用GitHub存放源码并促进社区贡献使用Jupyter Notebook混合代码、公式与文字使用Sphinx作为渲染引擎使用Discourse作为讨论平台。这一内容即代码的架构正是本仓库的基石仓库中每个章节都是一个 Markdown 源文件如chapter_preface/index.md、chapter_linear-regression/index.md代码块通过%%tab标记区分不同深度学习框架的实现再经d2lbook构建工具统一渲染为网页、PDF 与可执行 Notebook。与传统教材、博客与在线课程的区别前言客观对比了当时的几类资源框架教程/博客代码片段大量博客与 GitHub 仓库提供了如何实现 LeNet、AlexNet、ResNet之类的示例但它们通常只讲how如何实现忽略了why为什么做这些算法决策交互式资源如 Distill 等覆盖的主题有限且往往缺少配套代码深度学习教科书如 Goodfellow 等人的经典著作提供了全面综述但没有把概念描述与代码实现联姻读者常常不知道如何动手实现商业课程平台的付费内容被付费墙挡在门外。因此本书作者设定了五个目标对所有人免费开放提供足够的技术深度成为通向应用型机器学习科学家的起点包含可运行代码展示如何在实际中解决问题支持作者与社区快速更新配有一个讨论论坛用于技术细节的互动讨论与答疑。前言称《动手学深度学习》可能是第一本使用这种集成工作流出版的书籍。边做边学just-in-time 教学法许多教科书按顺序、详尽地讲解每个概念读者往往需要付出大量前置工作才能接触到线性回归。本书则相反采用just in time即时教学在某个概念恰好被需要用来完成某个实际目标的那一刻才引入它。开头只花少量篇幅讲授线性代数、概率等基础预备知识随后就让读者尽早体验到训练第一个模型的成就感。本书的组织策略是一个可运行的示例一个 Notebookone working example, one notebook这让读者可以轻松地通过复制 Notebook 并修改来启动自己的研究项目。全书在需要时交织运行代码与背景材料并倾向于先给出工具、后解释原理——例如在使用随机梯度下降SGD的场合可能先使用它之后才解释其原理与直觉。在讲解方式上本书遵循从零开始的原则基础教程中会深入模型与优化器的细节通常给出两个版本的示例从零实现版只依赖 NumPy 类功能与自动微分逐行实现某个层或优化器高层 API 版使用深度学习框架的高层 API 编写简洁代码。在解释完组件工作原理后后续教程便依赖高层 API 继续推进。这一先看底层、再用高层的模式在仓库中随处可见例如chapter_linear-regression/linear-regression-scratch.md与linear-regression-concise.md的成对编排。内容与结构三大部分全书分为三大板块涵盖预备知识、深度学习技术以及聚焦真实系统与应用的高级主题整体结构如下图所示。第一部分基础与预备知识Basics and Preliminaries开篇的绪论章节介绍深度学习预备知识章节快速补齐动手实践所需的前提数据存储与操作、基于线性代数/微积分/概率的数值运算回归与多层感知机章节chapter_linear-regression、chapter_linear-classification、chapter_multilayer-perceptrons覆盖最基础的概念与技术回归与分类、线性模型、多层感知机、过拟合与正则化。第二部分现代深度学习技术Modern Deep Learning Techniques计算章节chapter_builders-guide、chapter_computational-performance讲解深度学习系统的关键计算组件为后续复杂模型实现奠定基础卷积神经网络章节chapter_convolutional-neural-networks、chapter_convolutional-modern介绍作为现代计算机视觉系统骨干的 CNN循环神经网络章节chapter_recurrent-neural-networks、chapter_recurrent-modern介绍利用序列如时间结构、常用于 NLP 与时间序列预测的 RNN注意力与 Transformer 章节chapter_attention-mechanisms-and-transformers介绍基于注意力机制、已取代 RNN 成为大多数 NLP 任务主导架构的新一代模型。第三部分可扩展性、效率与应用Scalability, Efficiency, and Applications优化章节chapter_optimization讨论训练深度学习模型的常用优化算法计算性能章节chapter_computational-performance考察影响深度学习代码计算性能的关键因素计算机视觉章节chapter_computer-vision展示深度学习在视觉领域的主要应用自然语言处理预训练与应用章节chapter_natural-language-processing-pretraining、chapter_natural-language-processing-applications演示如何预训练语言表示模型并将其应用于 NLP 任务。此外仓库还包含强化学习、高斯过程、超参数优化、生成对抗网络、推荐系统等进阶章节完整章节清单可参见仓库根目录的 index.md。Coded2l 工具包与#save约定前言强调本书大部分小节都配有可执行代码因为有些直觉必须通过反复试错、微调代码并观察结果来建立。为了避免不必要的重复全书把最常用、最常被导入的函数与类集中收录在d2l包中。凡是标记了#save的代码块函数、类或导入语句集合都表示它之后会通过d2l包被再次访问。前言给出了d2l包轻量化的依赖集合即d2l包本身只依赖下列库import inspect import collections from collections import defaultdict from IPython import display import math from matplotlib import pyplot as plt from matplotlib_inline import backend_inline import os import pandas as pd import random import re import shutil import sys import tarfile import time import requests import zipfile import hashlib d2l sys.modules[__name__]这与仓库中d2l/torch.py顶部的导入集合完全一致也和 setup.py 声明的安装依赖jupyter1.0.0、numpy1.23.5、matplotlib3.7.2、matplotlib-inline0.1.6、requests2.31.0、pandas2.0.3、scipy1.10.1相互印证。d2l包的版本号在 d2l/init.py 中定义为1.0.3并支持四种后端导入方式from d2l import mxnet as d2l # 使用 MXNet 作为后端 from d2l import torch as d2l # 使用 PyTorch 作为后端 from d2l import tensorflow as d2l # 使用 TensorFlow 作为后端 from d2l import jax as d2l # 使用 JAX 作为后端各框架的专属依赖全书代码同时维护 MXNet、PyTorch、TensorFlow 与 JAX 四个后端实现即d2l/mxnet.py、d2l/torch.py、d2l/tensorflow.py、d2l/jax.py四个源码文件。前言中按框架给出了各自的常用导入MXNet 后端基于 Apache MXNet曾被 AWS 及众多高校与公司选用from mxnet import autograd, context, gluon, image, init, np, npx from mxnet.gluon import nn, rnnPyTorch 后端本书目前的主框架深受深度学习研究社区欢迎import numpy as np import torch import torchvision from torch import nn from torch.nn import functional as F from torchvision import transforms from PIL import Image from scipy.spatial import distance_matrixTensorFlow 后端工业界广泛采用import numpy as np import tensorflow as tfJAX 后端提供任意 Python/NumPy 函数的可组合变换如自动微分、JIT 编译、向量化API 与 NumPy 保持 1:1 对齐from dataclasses import field from functools import partial import flax from flax import linen as nn from flax.training import train_state import jax from jax import numpy as jnp from jax import grad, vmap import numpy as np import optax import tensorflow as tf import tensorflow_datasets as tfds from types import FunctionType from typing import Any注意MXNet 与 TensorFlow 两个后端是历史演进产物——本书最初以 MXNet 为主框架2021 年 7 月后重新设计并改用 PyTorch 为主框架同时保留 MXNet、TensorFlow 与 JAX 实现见前言致谢部分。d2l 包的核心类与函数源码级概览完整的d2l包 API 清单见附录的 《The d2l API Document》其中按字母顺序列出了全书累积的类与函数及其定义出处。从前言与源码可以归纳出d2l包的几条主线面向对象设计的基础设施详见 chapter_linear-regression/oo-design.mdHyperParameters基类提供save_hyperparameters(ignore[])利用inspect.getargvalues把函数参数自动保存为类属性避免手写大量样板代码d2l/torch.py 中第 109 行起的实现Module所有模型的基类继承nn.Module与HyperParameters内置ProgressBoard绘图板与training_step/validation_step/configure_optimizers等钩子DataModule数据基类提供train_dataloader()与val_dataloader()接口Trainer训练器基类fit(model, data)驱动max_epochs轮训练并维护训练/验证批索引ProgressBoard训练曲线动画绘图板draw方法按every_n聚合原始点并绘制均值曲线。数学与可视化工具use_svg_display、set_figsize、set_axes、plot源自 chapter_preliminaries/calculus.md以及Animator、Accumulator、accuracy、show_images等源自 chapter_appendix-tools-for-deep-learning/utils.md。数据获取工具download支持 sha1 校验缓存、extract、download_extract源自 utils.md配合d2l.torch.py顶部的DATA_HUB与DATA_URL http://d2l-data.s3-accelerate.amazonaws.com/使用。数据集类FashionMNIST、SyntheticRegressionData、TimeMachine、MTFraEng英法机器翻译语料等。模型类LinearRegression、SoftmaxRegression、LeNet、GRU、RNN、Seq2Seq、TransformerEncoder、MultiHeadAttention、Residual、ResNeXtBlock等。这些类/函数正是一例一 Notebook策略下全书代码得以简洁、可复用的底层支撑。目标读者与前置知识本书面向学生本科生或研究生、工程师与研究人员目标是让他们扎实掌握深度学习的实用技术。由于所有概念都从零讲解读者不需要任何深度学习或机器学习背景但需要具备适度的线性代数、微积分、概率与 Python 编程基础。如果你遗忘了相关数学知识仓库中的数学附录提供了书中大部分数学内容的复习资料。前言还推荐了几本扩展读物线性分析、统计学、概率论等并指出本书通常优先直觉与思想而非数学上的严格性。Notebooks、网站、GitHub 与论坛所有 Notebook 都可通过本书网站与 GitHub 仓库下载与本书配套的讨论论坛允许读者在每一节底部找到对应讨论页面的链接随时向作者与更广泛的社区提问、寻找答案。仓库中每个章节的 Markdown 源文件即是这些 Notebook 的源由d2lbook构建系统转换为可执行 Notebook例如chapter_preface/index.md的代码块都可在 Jupyter 中直接运行。环境准备安装与运行本书代码要实际运行本书代码需要 Python、Jupyter Notebook、相关库以及本书代码所需的环境。仓库中的安装章节给出了完整流程核心步骤如下以官方测试过的 Python 3.9 与d2l包 1.0.3 版本为例1. 安装 Miniconda若机器已有 conda 可跳过# macOS以 Intel Mac 为例 sh Miniconda3-py39_4.12.0-MacOSX-x86_64.sh -b # Linux sh Miniconda3-py39_4.12.0-Linux-x86_64.sh -b初始化 shell 后创建并激活d2l环境~/miniconda3/bin/conda init conda create --name d2l python3.9 -y conda activate d2l2. 安装深度学习框架。安装前先确认机器是否具备可用 GPU笔记本上驱动显示器的 GPU 不适用无 GPU 时 CPU 足够跑完前几章跑大规模模型前再考虑 GPU。PyTorch本书当前主框架pip install torch2.0.0 torchvision0.15.1TensorFlowpip install tensorflow2.12.0 tensorflow-probability0.20.0JAXCPU 版与 CUDA 版二选一# GPU 版 pip install jax[cuda11_pip]0.4.13 -f https://storage.googleapis.com/jax-releases/jax_cuda_releases.html flax0.7.0 # CPU 版 pip install jax[cpu]0.4.13 flax0.7.0MXNet需根据 CUDA 版本选择如cu112对应 CUDA 11.2无 GPU 时安装 CPU 版# GPU 版以 CUDA 11.2 为例 pip install mxnet-cu1121.9.1 # CPU 版 pip install mxnet1.9.13. 安装d2l包封装全书高频函数与类的轻量包pip install d2l1.0.34. 下载 Notebook 并运行mkdir d2l-en cd d2l-en curl https://d2l.ai/d2l-en-1.0.3.zip -o d2l-en.zip unzip d2l-en.zip rm d2l-en.zip cd pytorch # 或 mxnet / tensorflow / jax jupyter notebook启动后在浏览器打开 http://localhost:8888 即可逐节运行代码。每次打开新命令行窗口都需先执行conda activate d2l再运行 Notebook 或更新包退出环境用conda deactivate。如何参与贡献从修错别字到提交大改动前言指出本书源码托管在 GitHub 上借助版本控制与持续集成CI测试改进通常只需数小时到数天即可被合入传统书籍两次印刷之间的勘误间隔则以年计。详细流程见贡献章节要点如下小幅修改改一句话、修错别字直接在 GitHub 仓库中找到对应的 Markdown 源文件如chapter_preface/index.md点击 Edit this file 修改填写变更说明后提交 Pull Request大篇幅改动先 Fork 仓库在本地用 Jupyter Notebook 打开对应 Markdown 文件编辑并运行测试提交前务必清空所有输出因为 CI 会执行你更新的小节来生成输出若新增代码块需用%%tab标记所属框架%%tab pytorch、%%tab tensorflow、%%tab all等标准流程为Fork → Clone → 编辑并git add/git commit/git push→ 从你的 Fork 发起 New pull request建议提交多个小 Pull Request而非一个巨型 PR便于作者审阅与合入。这一内容可被任何人改进的开放机制正是本书能在多框架、多语言版本间快速演进的工程保障。总结深度学习已经革新了模式识别驱动着计算机视觉、自然语言处理、自动语音识别等众多领域。要成功应用深度学习必须理解如何表述问题、建模的基本数学、拟合模型的算法以及实现它的工程技巧。《动手学深度学习》将这些内容——文字、图、数学与代码——完整地汇集在一处内容形态一个 Markdown 源文件同时产出可执行 Notebook、实体书、PDF 与网页多框架代码用%%tab组织教学法just-in-time 引入概念一个示例一个 Notebook从零实现与高层 API 双版本并存代码体系d2l包d2l/目录下四框架实现用#save累积全书高频工具配套 setup.py 声明的最小依赖与d2l1.0.3发布版本开放协作GitHub 源码 讨论论坛 CI 测试使读者能快速参与改进。练习在本书的讨论论坛注册一个账号熟悉提问与讨论的入口在电脑上安装 Python并参照安装章节搭建d2l环境按照章节底部提供的论坛链接加入讨论、向作者与更广泛的社区寻求帮助并回答问题。赞分享文档教程人工智能深度学习NLP计算机视觉强化学习【免费下载链接】d2l-enInteractive deep learning book with multi-framework code, math, and discussions. Adopted at 500 universities from 70 countries including Stanford, MIT, Harvard, and Cambridge.项目地址https://gitcode.com/gh_mirrors/d2/d2l-en点击查看免费下载相关推荐《Dive into Deep Learning》项目解析深度学习入门指南《Dive into Deep Learning》项目解析深度学习入门指南 深度学习的发展历程 深度学习在短短几年内从学术界的边缘课题发展成为推动技术进步的核文档教程人工智能深度学习NLP计算机视觉强化学习D2LDive into Deep Learning开源交互式深度学习教材多框架代码、数学与社区讨论的完整指南D2LDive into Deep Learning开源交互式深度学习教材多框架代码、数学与社区讨论的完整指南 D2LDive into Deep Le文档教程人工智能深度学习NLP计算机视觉强化学习Dive into Deep Learning 开篇从规则编程到机器学习与深度学习的全景入门Dive into Deep Learning 开篇从规则编程到机器学习与深度学习的全景入门 本篇是开源交互式深度学习教材《Dive into Deep Le文档教程人工智能深度学习NLP计算机视觉强化学习创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考