# DeepLearning-500-questions User Guide

`DeepLearning-500-questions` (深度学习500问) is an open, community-curated study book that frames deep learning as a long sequence of short questions and short answers. Nineteen chapters walk you from linear-algebra refreshers through CNNs, RNNs, GANs, detection, segmentation, reinforcement learning, transfer learning, training tactics, optimization, hyper-parameter tuning, GPU/framework choice, NLP, model compression, backend deployment, and even Chinese software-patent procedure. The repository is a published book companion: a print edition titled *深度学习500问——AI工程师面试宝典* is available from the Chinese publisher 博文视点 (JD listing in §[FAQ](#faq)).

This guide tells you how to **read** the book, how to **navigate** its 500+ questions, how to **render** the math, how to **use the partial English translation**, and how to **submit corrections**. It does not teach deep learning — that is the book's job.

> [!NOTE]
> The original content is written in Simplified Chinese. An English translation covers chapters 1–4 only and was produced via Google Translate plus partial human editing. If you read English exclusively, see [Reading the English Version](#7-reading-the-english-version) before going further.

The repository and its companion print edition serve complementary roles.

> [!IMPORTANT]
> The repository is the **freely shared text** of the project. The print book has additional editorial content. The two are not identical, and the print book carries copyright restrictions even though this repository is GPL-3.0.

---

## 1. Quick Start

You can read the book in three ways. All three work today, no installation required.

=== "Read on GitHub"

    The simplest path. Every chapter is a Markdown file that GitHub renders directly.

    1. Open <https://github.com/scutan90/DeepLearning-500-questions>
    2. Click any folder named `chXX_...`
    3. Open the `.md` file inside that starts with `第N章_` (or `ch7.md` for chapter 7)

    GitHub renders headings, lists, tables, and most images. It does **not** render LaTeX math — formulas like `$\Vert{A}\Vert_2$` will appear as raw source. For math, use one of the next two paths.

=== "Read with the docsify site"

    The repository ships a [docsify](https://docsify.js.org/) configuration (`index.html` + `docsify.js` + `_sidebar.md`). Docsify is a thin client-side renderer that turns the Markdown files into a single-page site with sidebar, search, and KaTeX/MathJax math.

    ```bash
    git clone https://github.com/scutan90/DeepLearning-500-questions.git
    cd DeepLearning-500-questions
    python -m http.server 3000
    ```

    ```text
    Serving HTTP on :: port 3000 (http://[::]:3000/) ...
    ```

    Open <http://localhost:3000> in a browser. The sidebar lists all 20 entries from `_sidebar.md`; click any chapter to render it.

    > [!TIP]
    > Any static file server works — `python -m http.server`, `npx serve`, `caddy file-server`, or hosting the repo as GitHub Pages. Docsify needs no build step.

=== "Read locally with Typora"

    The original authors use [Typora](https://typora.io/) for editing and reading. Typora renders both KaTeX-style math (`$x$`, `$$y$$`) and the inline `[TOC]` directive at the top of each chapter.

    1. Install Typora (free during beta; paid afterwards)
    2. `File → Open` any `chXX_*/第N章_*.md`
    3. The `[TOC]` directive at the top expands into a clickable table of contents

    > [!NOTE]
    > Typora is the recommended editor in `English version/README.md` for previewing pull requests.

---

## 2. What You Get

A study companion organized as 500+ short Q&A entries grouped into chapters. The repository contents:

| Item | What it is |
|------|------------|
| `chXX_<topic>/` (× 20) | 19 chapters — one folder per chapter, Chinese title in folder name |
| `chXX_<topic>/第N章_*.md` | The chapter text. Headings are numbered `N.x.y`, content is mostly Q&A |
| `chXX_<topic>/img/` | Figures and diagrams referenced by the chapter |
| `chXX_<topic>/readme.md` | Short note about chapter status (often "writing in progress") |
| `chXX_<topic>/modify_log.txt` | Edit log, contributor names, dates |
| `English version/` | Partial English port of chapters 1–4 |
| `index.html` + `docsify.js` + `_sidebar.md` | Docsify static-site configuration |
| `_sidebar.md` | Master navigation list — chapter order and titles |
| `目录预览.md` | Original Chinese table of contents (preview-only) |
| `深度学习500问-Tan-00目录.docx` | Print-edition table of contents (Word) |
| `LICENSE` | GNU GPL-3.0 |

You do not get: source code to run, a Jupyter notebook, a CLI, an exam grader, or a backend API. The product is the **text**.

### 2.1 The 19 Chapters at a Glance

| # | Chinese | English equivalent | Folder | Pages (approx.) |
|---|---------|--------------------|--------|-----------------|
| 1 | 数学基础 | Mathematical Foundations | `ch01_数学基础/` | Linear algebra, derivatives, eigenvalues, probability distributions |
| 2 | 机器学习基础 | Machine Learning Foundations | `ch02_机器学习基础/` | Supervised vs unsupervised, common algorithms, LDA/PCA, evaluation, decision trees, SVM, Bayesian, EM, clustering |
| 3 | 深度学习基础 | Deep Learning Foundations | `ch03_深度学习基础/` | Forward/back propagation, hyperparameters, activations, batch size, normalization, initialization, softmax, dropout |
| 4 | 经典网络 | Classic Networks | `ch04_经典网络/` | LeNet5, AlexNet, ZFNet, VGG, NIN, GoogLeNet, Inception v1–v4, ResNet variants |
| 5 | 卷积神经网络 (CNN) | Convolutional Neural Networks | `ch05_卷积神经网络(CNN)/` | Convolution layers, kernel sizes, dilations, pooling, deconvolution, parameter counting |
| 6 | 循环神经网络 (RNN) | Recurrent Neural Networks | `ch06_循环神经网络(RNN)/` | RNN basics, BPTT, LSTM, GRU, bidirectional/deep RNNs, ESN, CW-RNN |
| 7 | 生成对抗网络 (GAN) | Generative Adversarial Networks | `ch07_生成对抗网络(GAN)/` | GAN principle, training stability, common variants |
| 8 | 目标检测 | Object Detection | `ch08_目标检测/` | Sliding window, R-CNN family, R-FCN, SSD, YOLO v1–v3 |
| 9 | 图像分割 | Image Segmentation | `ch09_图像分割/` | FCN, U-Net, SegNet, DeepLab v1–v3+, Mask R-CNN, weakly-supervised segmentation |
| 10 | 强化学习 | Reinforcement Learning | `ch10_强化学习/` | Application examples, transfer/hierarchical/memory/multi-agent deep RL |
| 11 | 迁移学习 | Transfer Learning | `ch11_迁移学习/` | What is multitask learning, end-to-end DL examples |
| 12 | 网络搭建及训练 | Network Construction & Training | `ch12_网络搭建及训练/` | Practical framework choice, training loop tactics |
| 13 | 优化算法 | Optimization Algorithms | `ch13_优化算法/` | CPU vs GPU, gradient vanishing/explosion, weight init, loss functions, mini-batch tuning, error analysis |
| 14 | 超参数调整 | Hyperparameter Tuning | `ch14_超参数调整/` | Debug processing, search ranges and strategies |
| 15 | GPU 和框架选型 | Heterogeneous Computing, GPU & Framework Selection | `ch15_GPU和框架选型/` | CUDA, cuDNN, GPU buying guide, framework comparison, multi-GPU, distributed, TPU |
| 16 | 自然语言处理 (NLP) | Natural Language Processing | `ch16_自然语言处理(NLP)/` | NLP foundations and tasks |
| 17 | 模型压缩、加速及移动端部署 | Model Compression, Acceleration & Mobile Deployment | `ch17_模型压缩、加速及移动端部署/` | Pruning, quantization, distillation; supplementary `17.8.1 NCNN部署.md` covers Tencent NCNN |
| 18a | 后端架构选型、离线及实时计算 | Backend Architecture: Offline & Real-Time Compute | `ch18_后端架构选型、离线及实时计算/` | Offline vs real-time backends |
| 18b | 后端架构选型及应用场景 | Backend Architecture: Selection & Use Cases | `ch18_后端架构选型及应用场景/` | Different focus from 18a — read both |
| 19 | 软件专利申请及权利保护 | Software Patent Application & Rights Protection (China) | `ch19_软件专利申请及权利保护/` | Chinese software-patent procedure |

> [!NOTE]
> Two folders are labeled "Chapter 18" because the project split that material into two distinct chapters during editing. Read both.

Chapter depth varies widely across the collection — some chapters have thousands of lines of detailed Q&A while others are stubs.

> [!WARNING]
> Chapter 16 (NLP) is the shortest chapter (~100 lines) and the least complete. Treat it as a stub. Chapters 10, 11, 14, and 19 are also lighter than the median.

---

## 3. How to Use This Book

The book is **not** a linear textbook. It is a Q&A reference designed for two main audiences: **interview candidates** preparing for AI/ML/DL job interviews in China, and **self-learners** filling specific gaps. Pick a path that matches your goal.

### 3.1 Reading Path: AI/ML Interview Preparation

The print edition's subtitle is *AI工程师面试宝典* — "AI Engineer Interview Treasure Book". The book is built from interview questions the editors collected at major Chinese tech companies. Recommended order:

1. **Skim chapters 1–3** — verify you can answer every section header without reading the answer.
2. **Mark gaps** — for any header where you cannot answer, read the section. Move on.
3. **Then chapters 4 (classic networks), 5 (CNN), 6 (RNN)** — the network-architecture core.
4. **Pick task-specific chapters** based on the role: vision (8, 9), generative (7), NLP (16), production (17, 18a, 18b), GPU/infra (15).
5. **Skim chapter 13 (optimization) the day before the interview** — it is dense but high-yield for trick questions.

> [!TIP]
> Each section header is itself a likely interview question. Use `Ctrl+F` on the `_sidebar.md` for fast question lookup.

### 3.2 Reading Path: Self-Study from Scratch

If you are learning deep learning for the first time, this book is **not your textbook** — it is a companion. Use it alongside a course or a textbook:

1. Read your textbook chapter on a topic.
2. Open the matching chapter here and answer every section header **before** reading the answer.
3. Compare your answer to the book's. Note the discrepancies.
4. Move to the next textbook chapter.

> [!IMPORTANT]
> The book assumes you already know undergraduate calculus and basic probability. Chapter 1 is a refresher, not a tutorial.

### 3.3 Reading Path: Topic Drill-Down

If you have a specific topic to learn (e.g. "I need to understand Inception v1"):

1. Open `_sidebar.md` to confirm which chapter covers it.
2. Use `Ctrl+F` to find the topic in the chapter file.
3. Read the surrounding 2–3 sections — answers often build on each other within a section.

### 3.4 Reading Path: Translator or Editor

If you came here to **improve** the book:

1. Read [Section 9 (Contributing)](#9-contributing).
2. Read [Section 6 (Local rendering & math)](#6-rendering-math) so your previews match the published format.
3. Open `English version/README.md` for the contributor agreement and the recommended Typora workflow.

---

## 4. Reading on GitHub

### 4.1 What works on GitHub

| Element | GitHub render |
|---------|---------------|
| Headings, paragraphs, lists | Yes |
| Tables | Yes |
| Inline images (PNG/JPG/GIF) | Yes |
| Code blocks | Yes |
| `[TOC]` directive at top of file | **No** — appears as literal text |
| LaTeX math `$x^2$` / `$$\sum$$` | **No** — appears as raw source |
| `<font>`, `<center>` HTML | Partial |

Math is the big one. GitHub's Markdown renderer does not run KaTeX or MathJax on `.md` files in this repository's layout. Formulas show up as escaped LaTeX, e.g.

```text
$\Vert\vec{x}\Vert_2=\sqrt{\sum_{i=1}^N{\vert{x_i}\vert}^2}$
```

instead of the rendered formula. If you only need an outline of a topic, GitHub is fine. If you need to read math, use docsify or Typora.

### 4.2 The chapter file naming convention

Most chapters use `第N章_<topic>.md` (Chinese: "Chapter N"). Two exceptions:

- **Chapter 7** uses `ch7.md` — same content, different filename.
- **Chapter 17** has both the main `第十七章_*.md` file **and** a supplementary `17.8.1 NCNN部署.md` covering Tencent's NCNN inference framework.

The `_sidebar.md` already points at the correct file for each chapter.

### 4.3 Image paths

All chapter images live under `chXX_<topic>/img/`. Each chapter file uses paths like:

```markdown
![Figure 2-1](./img/ch2/2-1.png)
```

When viewing on GitHub, paths render correctly. When viewing through docsify, the relative `../img` references are rewritten to `img` by a hook in `index.html` (see [§6.4](#64-image-paths-under-docsify)).

> [!WARNING]
> A small number of images use non-ASCII filenames (Chinese characters in the filename) or live under `img/ch2/2.40.10/1.png`-style nested directories. Most renderers handle both, but some plain Markdown viewers (older Typora versions, basic IDE previews) silently drop these. If a figure is missing in your viewer, switch to GitHub or docsify and try again.

---

## 5. Reading with the Docsify Site

The repository ships a self-contained [docsify](https://docsify.js.org/) configuration. Docsify renders Markdown in the browser at request time — no build, no server-side process beyond static file delivery.

### 5.1 Running the docsify site

```bash
git clone https://github.com/scutan90/DeepLearning-500-questions.git
cd DeepLearning-500-questions
```

Then start any static server. Examples:

```bash
# Python (built-in)
python -m http.server 3000
```

```bash
# Node.js
npx serve -p 3000 .
```

```bash
# Docsify CLI (optional)
npm install -g docsify-cli
docsify serve .
```

```text
Listening on http://localhost:3000
```

Open <http://localhost:3000> and the docsify-rendered site appears with sidebar, search, and math.

### 5.2 What docsify provides

The configuration in `index.html` enables:

| Feature | Source |
|---------|--------|
| Sidebar navigation | `loadSidebar: true` reads `_sidebar.md` |
| Math rendering | KaTeX 0.10.0-rc.1 + MathJax 2.7.5 fallback |
| Code copy button | `docsify-copy-code` plugin |
| Bash + Python syntax highlighting | `prism-bash`, `prism-python` |
| Image zoom on click | `zoom-image` plugin |
| Sidebar search | `search` plugin, depth 6 |
| Theme color | Orange (`#fc7e09`) |

The configured site name is `深度学习500问` and the configured GitHub link points back at `https://github.com/scutan90/DeepLearning-500-questions`.

### 5.3 Hosting the site publicly

Any static host works. The simplest is GitHub Pages:

1. Fork the repository to your GitHub account.
2. Settings → Pages → Source: `main` branch, root.
3. Wait for the build, then visit `https://<your-username>.github.io/DeepLearning-500-questions/`.

The repository ships `.nojekyll` already, so GitHub Pages serves files literally without Jekyll processing — required for docsify because Jekyll would hide `_sidebar.md` (any file starting with `_`).

> [!IMPORTANT]
> The `.nojekyll` file is **required** for GitHub Pages hosting. Do not delete it.

### 5.4 Reading offline

After cloning, you can also load `index.html` directly in a browser via `file://`. Some browsers block CORS-style fetches over `file://` — if the sidebar is empty, switch to `python -m http.server` and open via `http://localhost:`.

---

## 6. Rendering Math

Most of the value of this book is in the formulas. Make sure they render before you start.

### 6.1 The math notation in use

Chapters use TeX/LaTeX math in three forms:

| Syntax | Use | Example |
|--------|-----|---------|
| `$...$` | Inline math | `$\vec{a}=[-5, 6, 8, -10]$` |
| `$$...$$` | Display math | `$$L_p=\Vert\vec{x}\Vert_p=\sqrt[p]{\sum_{i=1}^{N}|{x_i}|^p}$$` |
| `\[...\]` / `\(...\)` | Display/inline (Typora-only fallback) | rare |

The chapters mix Chinese-text-with-inline-math heavily. Do not be surprised by inline `$x_1$` interspersed with Chinese characters — the math renderer ignores the surrounding text.

### 6.2 Math in docsify

Docsify is configured to use **KaTeX** with a **MathJax fallback** for symbols KaTeX does not support. From `index.html`:

```javascript
markdown: { latexRender: katex.renderToString.bind(katex) },
plugins: [
  function(hook, vm) {
    hook.doneEach(function () {
      window.MathJax.Hub.Queue(["Typeset", MathJax.Hub, document.getElementById('app')]);
    })
  }
]
```

KaTeX handles most expressions (norms, sums, integrals, matrices). MathJax catches the few that KaTeX rejects.

> [!NOTE]
> KaTeX 0.10.0-rc.1 is **eight years old** as of writing. It works for the formulas in this book, but if you fork and add modern macros, upgrade KaTeX in `index.html` first.

### 6.3 Math in Typora

Typora renders math natively if you enable inline math in preferences. From `English version/README.md`:

```text
File → Preference
- Syntax Support
  - Inline Math
  - Subscript
  - Superscript
  - Highlight
  - Diagrams
```

Enable all of them. Typora is the editor recommended by the authors for contributors.

### 6.4 Image paths under docsify

Chapter source uses `../img/ch2/2-1.png` because chapters live in subfolders. Docsify serves each Markdown file with a different base path, so a `beforeEach` hook in `index.html` rewrites those paths:

```javascript
hook.beforeEach(function(content) {
  return content.replace(/..\/img/g, "img");
})
```

This is why images render under docsify but **only because the rewriting hook is present**. If you fork the repo and replace `index.html`, keep the hook or images will 404.

### 6.5 Math in plain Markdown viewers

VS Code with the "Markdown All in One" extension renders most formulas via KaTeX. Plain GitHub does not. Other Markdown viewers vary widely — test on Chapter 1 first, since it has the densest formula content.

---

## 7. Reading the English Version

A partial English translation lives under `English version/`. It is **not** complete:

| Chapter | English file | Status |
|---------|--------------|--------|
| 1 — Mathematical Basis | `ch01_MathematicalBasis/` | Translated |
| 2 — Machine Learning Foundation | `ch02_MachineLearningFoundation/` | Translated |
| 3 — Deep Learning Foundation | `ch03_DeepLearningFoundation/` | Translated |
| 4 — Classic Network | `ch04_ClassicNetwork/` | Translated |
| 5–19 | — | **Not translated** |

From `English version/README.md`:

> This was translated with Google Translate and partial human translation. Please help translate more of this resource to English as mentioned in the section on contributing

The implications:

1. **Mechanical-translation artifacts are present.** Phrases like "twenty four" appear in the chapter 2 TOC (machine translation rendered "二十四" as English words) and "Reinforced Learning Application Examples" (literal calque from "强化学习应用举例"). Read with that in mind.
2. **Cross-references can break.** A sentence in English chapter 3 might cite "see chapter 8" — but English chapter 8 does not exist. The Chinese chapter 8 does.
3. **Math notation is identical** between editions. Even if you read English, the formulas are the same TeX source.

> [!TIP]
> If you read English: read English chapters 1–4 here for context, then switch to the Chinese chapters 5+ with a translation tool (browser auto-translate, DeepL, the system clipboard pipeline) for the remaining material.

Be cautious with contact information found in older repository files — some dates back several years.

> [!WARNING]
> The English `English version/README.md` mentions "We Chat Client" group invitations with phone-number-style IDs. Treat any contact in those groups as unaffiliated with the project unless the response is on-repo. The repository's `qun.png` image and the README's WeChat references date to 2018–2020.

---

## 8. Common Tasks

### 8.1 Search across the entire book

The docsify search plugin handles queries across all chapters. It is enabled by default (`paths: 'auto'`, depth 6).

If you are reading on disk, use ripgrep:

```bash
# Find every section that mentions ResNet
rg -n "ResNet" -g "ch*/*.md"
```

```text
ch04_经典网络/第四章_经典网络.md:142:## 4.8 ResNet及其变体
ch04_经典网络/第四章_经典网络.md:155:### 4.8.5 ResNeXt
...
```

### 8.2 Build a single-file PDF for a chapter

The repository does not ship a PDF build pipeline (this is a long-standing user request, see [§10 FAQ](#faq)). The simplest workaround uses Pandoc:

```bash
# Install pandoc (https://pandoc.org/installing.html) then:
pandoc "ch01_数学基础/第一章_数学基础.md" \
  -o ch01.pdf \
  --pdf-engine=xelatex \
  --variable=mainfont:"Noto Sans CJK SC" \
  --variable=mathfont:"Latin Modern Math"
```

You need a CJK-aware font (Noto Sans CJK is free) for the Chinese characters and a TeX math font for the formulas. The output is reasonable for printing.

> [!CAUTION]
> Most online "Markdown to PDF" tools strip math and break Chinese fonts. Use Pandoc with `xelatex` (or `lualatex`) and a CJK-aware font, or print from your browser after rendering with docsify.

### 8.3 Print from the browser

The most-reliable approach for math-heavy chapters:

1. Run the docsify site (§5.1).
2. Open the chapter you want.
3. `Ctrl+P` → Save as PDF.

Browser print captures whatever the renderer drew, including KaTeX-rendered math. Page breaks are imperfect but readable.

### 8.4 Copy a single section into your notes

The chapter Markdown is plain text — copy directly out of the source file. KaTeX expressions paste cleanly into Obsidian, Typora, and Notion (Notion's `$x$` rendering is similar to KaTeX). They paste **as code** into Discord/Slack — wrap them in fenced blocks before sharing.

### 8.5 Check what changed in a chapter

Each chapter folder ships a `modify_log.txt` recording manual edit history (contributor name, date, changes). Example excerpt format:

```text
2018-09-15 contributor 修改 2.5 节的笔误
2019-03-22 contributor 增加 2.40.x 模型评估的新内容
```

For a more authoritative changelog, use `git log`:

```bash
git log --oneline --follow "ch02_机器学习基础/第二章_机器学习基础.md"
```

### 8.6 Cite a section in a paper or blog post

The repository has no DOI. Cite as a GitHub URL:

```text
谈继勇 et al. (2018-2021). 深度学习500问 (DeepLearning-500-questions),
chapter <N>, section <N.x.y>. scutan90.
https://github.com/scutan90/DeepLearning-500-questions/blob/main/<file>
```

For the print edition, cite the JD listing publisher (博文视点) and ISBN — see [§10 FAQ](#faq).

---

## 9. Contributing

The project is open and the maintainers welcome corrections, translations, and new content. From the English README's contributing section:

| Contribution type | How |
|-------------------|-----|
| Fix a typo | Edit `chXX_<topic>/第N章_<topic>.md`, open a PR |
| Fix wrong math | Same — but render the new formula in Typora before PR |
| Translate a section | Add to `English version/chXX_<topic>/`, open a PR |
| Add a new section | Discuss in an issue first; the editors prefer coordinated structure |
| Fix a broken image | Replace under `chXX_<topic>/img/`, keep the same filename |
| Suggest reorganization | Open an issue — do not refactor in a single large PR |

### 9.1 Contributor workflow (from `English version/README.md`)

1. Fork the project.
2. Make changes — record your name and affiliation in the format `Name-Affiliation` (e.g. *Daxie-West Lake University*).
3. Review for grammar and technical errors.
4. Preview formatting using Typora with the recommended settings (see [§6.3](#63-math-in-typora)).
5. Commit changes to your fork.
6. Open a pull request, clearly stating what changes you made and why.
7. Wait for review.

> [!IMPORTANT]
> The project is **GPL-3.0 licensed**. Your contributions inherit the license. If you fork to start a derivative work in another language (a common pattern for educational books — see *clean-code-javascript*'s 20+ translation forks), keep the GPL-3.0 notice and credit the original.

### 9.2 What the maintainers want most

Looking at open issues (see <https://github.com/scutan90/DeepLearning-500-questions/issues>), the most requested help is:

1. **More English translation** — chapters 5–19 are entirely untranslated (see open issue [#548](https://github.com/scutan90/DeepLearning-500-questions/issues/548) "English translation").
2. **A PDF build** — multiple users have asked for a downloadable PDF (open issues [#393](https://github.com/scutan90/DeepLearning-500-questions/issues/393), [#481](https://github.com/scutan90/DeepLearning-500-questions/issues/481), [#376](https://github.com/scutan90/DeepLearning-500-questions/issues/376)).
3. **Filling missing sections** — chapter 16 (NLP) is short, and a few in-text references point to sections that were never written ([#536](https://github.com/scutan90/DeepLearning-500-questions/issues/536) asks where 2.3–2.7 went; the headings exist but several sub-sections are stubs).
4. **Math/typo corrections** — for instance [#544](https://github.com/scutan90/DeepLearning-500-questions/issues/544) flags an error in the tanh derivative table at 3.4.3.

### 9.3 Reporting issues

The project's issue tracker accepts both Chinese and English bug reports. Useful conventions:

- For typo / wrong-math reports: cite the chapter, section number, and line — `ch03 §3.4.3 table row tanh`.
- For broken images: include the path of the missing image — `ch07_生成对抗网络(GAN)/img/ch7/...`.
- For new-content suggestions: open an issue first, do not open a multi-thousand-line PR cold.

The tracker has a noise problem common to long-running Chinese OSS repos: occasional spam (`#547` "程序员必备神器：稳定快速vpn机场" is recruitment / VPN promotion, not a bug). The maintainers do not aggressively close noise — filter mentally when browsing.

### 9.4 Communication channels

From the English README:

- **GitHub issues** — primary channel.
- **Email** — `[email removed]`.
- **WeChat group** — readers who have made merged contributions can request entry. The README lists three group-admin contact handles. Contact through the project, not directly — the WeChat ecosystem is rife with imposters and the project cannot vouch for off-repo channels.

---

## 10. FAQ

**Q: Is this the same content as the print book *深度学习500问*?**

A: **Almost, but not identical.** The print edition (《深度学习500问——AI工程师面试宝典》, published by 博文视点, JD listing <https://item.jd.com/12785031.html>) has the same chapter outline and reuses much of the same text, but the print version was edited and reorganized for publication and is shorter than the open repository in some places. The repository is the **community draft**; the book is the **edited, paid product**.

**Q: Why is some content in the repository missing from the print book (or vice versa)?**

A: Editorial decisions. The repository keeps chapters that the editors trimmed for print, and the print edition adds polish that has not been merged back. The two have drifted since the book went to press.

**Q: Can I use this for commercial purposes?**

A: The repository is **GPL-3.0**. You can copy, modify, and redistribute, but derivative works must also be GPL-3.0 and the original copyright must be preserved. The print book has its own commercial copyright held by the publisher — buying the book does not grant rights beyond personal use. **Image rights** are murky: many figures are reproductions from papers (LeNet, AlexNet, ResNet diagrams, etc.) and the repository does not license them; if you build a derivative, replace third-party images or get their authors' permission.

**Q: There is no PDF. Why?**

A: The repository has never shipped a PDF build pipeline. The maintainers have considered it (see issues [#481](https://github.com/scutan90/DeepLearning-500-questions/issues/481), [#393](https://github.com/scutan90/DeepLearning-500-questions/issues/393), [#376](https://github.com/scutan90/DeepLearning-500-questions/issues/376) — all open) but the docsify-based architecture means PDFs would need a separate build (e.g. `docsify-to-pdf`, Puppeteer + a print stylesheet, or Pandoc per chapter). Use one of the workarounds in [§8.2](#82-build-a-single-file-pdf-for-a-chapter) or [§8.3](#83-print-from-the-browser).

**Q: The repository has not been updated in years. Is it abandoned?**

A: The most recent commit on `main` is from `2021-10-14` (commit `6087a06`). Active editorial work on the print edition is the likely reason. Treat the repository as a stable, completed work rather than an evolving project. Pull requests still get reviewed periodically.

**Q: Some sections are very thin, especially chapter 16 (NLP). Why?**

A: The book was a multi-author, multi-year community effort, and not every chapter received the same depth of contribution. Chapter 16 (~100 lines) and the second chapter 18 are the most obvious gaps. The print edition has fuller versions of some thin chapters; the repository preserves the open community draft as it stood when the print edition was finalized.

**Q: Why are there two "Chapter 18" folders?**

A: The editors split backend-architecture content into two distinct chapters during editing — one focused on offline vs real-time compute architecture (`ch18_后端架构选型、离线及实时计算/`), the other on architecture selection and use cases (`ch18_后端架构选型及应用场景/`). They have different content; read both.

**Q: The math is not rendering on GitHub.**

A: GitHub does not run KaTeX/MathJax on plain `.md` files in this repository's layout. Use docsify ([§5](#5-reading-with-the-docsify-site)) or Typora ([§6.3](#63-math-in-typora)) for math.

**Q: Some images are not loading in my Markdown viewer.**

A: Common causes:
1. **Non-ASCII filename** — some images use Chinese characters in the filename. Most viewers handle them; some older Markdown previewers do not.
2. **Nested directory paths** — figures under `ch02_机器学习基础/img/ch2/2.40.10/1.png` need the full path; some viewers stop at the first `img/` level.
3. **Path normalization** — docsify needs the `beforeEach` hook from `index.html` to rewrite `../img` → `img`. Without it, `file://` viewing breaks.

**Q: I cloned the repository and the docsify site is empty.**

A: Two common causes: (1) you opened `index.html` over `file://` and your browser blocked the fetch — serve over HTTP (`python -m http.server`); (2) GitHub Pages is hiding `_sidebar.md` because Jekyll is enabled — add `.nojekyll` (already in the repo, so this only affects forks that delete it).

**Q: I want to fork this for another language (Spanish, Korean, etc.).**

A: This is the spirit of the GPL-3.0 license. Recommended steps:
1. Fork, rename the repo to e.g. `DeepLearning-500-questions-es`.
2. Translate `English version/README.md` (or `README.md`) to your language.
3. Translate chapters at your own pace; merge upstream improvements as the original repo accepts them.
4. Open an issue on the upstream repository announcing your fork so other language readers can find it.

**Q: Some links to external papers, blogs, or papers' images are dead.**

A: The repository was last updated in 2021. Many cited blog posts (especially those on Chinese tech-blog platforms like CSDN, 知乎, and 简书) have since been deleted, paywalled, or geo-blocked. When you hit a dead link, search for the paper title on Google Scholar, arXiv, or the Wayback Machine.

**Q: The repository says GPL-3.0 but the README says "respect copyright" and "piracy will be investigated". Which applies?**

A: Both. The **text content** of the repository is GPL-3.0 — you can copy and redistribute under GPL terms. The **print book** has separate publishing-house copyright. The README's piracy notice refers to redistribution of the print book or its scanned copies, not the repository. The image rights (figures lifted from papers) are not licensed to the repository at all and remain with their original authors.

---

## 11. Troubleshooting

### Error: `[TOC]` appears as literal text at the top of every chapter

**Cause:** the `[TOC]` directive is a Typora-specific extension. Standard Markdown renderers (GitHub, docsify with default config) do not interpret it.

**Solution:**
- On GitHub, ignore the literal `[TOC]` line — scroll past it.
- In Typora, it auto-expands.
- Under docsify, use the built-in sidebar instead — it auto-generates a TOC.

**Prevention:** None needed; this is by design and editors keep `[TOC]` for the Typora workflow.

---

### Error: KaTeX renders most formulas but throws on `\mathbf{X}` or `\boldsymbol{\mu}`

**Cause:** KaTeX 0.10.0-rc.1 (the version pinned in `index.html`) does not support every TeX macro. Some Greek-bold and decorated-symbol macros need MathJax.

**Solution:** Docsify is configured to fall back to MathJax via the `doneEach` hook in `index.html`. If formulas still fail to render:
1. Verify `<script async ... src="...mathjax.js?config=TeX-AMS-MML_HTMLorMML">` is loading (check the browser's Network tab).
2. If MathJax is blocked (some networks block CDNJS), download `MathJax.js` locally and update the `<script>` src.

**Prevention:** When forking and adding new content, prefer simple TeX macros that KaTeX supports natively — they render faster.

---

### Error: Sidebar empty when opening `index.html` from `file://`

**Cause:** modern browsers block `fetch()` of local files for security. Docsify needs to fetch `_sidebar.md` and the chapter Markdown files.

**Solution:** Always serve over HTTP, even locally:

```bash
python -m http.server 3000
```

Open `http://localhost:3000` instead of `file:///...`.

**Prevention:** Bookmark the `localhost:3000` URL or alias the command:

```bash
alias dl500='cd /path/to/DeepLearning-500-questions && python -m http.server 3000'
```

---

### Error: GitHub Pages serves the README but not the docsify site

**Cause:** your fork is missing `.nojekyll`, or you deleted it. GitHub Pages runs Jekyll by default, which hides files starting with `_` — including `_sidebar.md`.

**Solution:**

```bash
touch .nojekyll
git add .nojekyll
git commit -m "Disable Jekyll for GitHub Pages"
git push
```

**Prevention:** Never delete `.nojekyll` from the repository root.

---

### Error: Images load on GitHub but break in docsify

**Cause:** the `beforeEach` hook in `index.html` rewrites `../img` to `img`. If you customized `index.html` and removed the hook, relative image paths point one folder higher than they should.

**Solution:** restore the hook in `index.html`:

```javascript
hook.beforeEach(function(content) {
  return content.replace(/..\/img/g, "img");
})
```

**Prevention:** When customizing the docsify config, keep the `plugins:` array intact unless you know what each entry does.

---

### Error: A formula has a wrong derivative or wrong table cell

Multiple known cases — for example issue [#544](https://github.com/scutan90/DeepLearning-500-questions/issues/544) flags a tanh-derivative table error in §3.4.3.

**Solution:** Cross-reference with a textbook (Goodfellow's *Deep Learning*, Bishop's *PRML*, Hands-On ML) and trust the textbook. Open an issue or PR to fix it.

**Prevention:** Always verify derived results against a primary source when stakes are high (e.g. preparing for an interview or writing a paper).

---

### Error: A section heading is repeated (e.g. two `2.23` entries)

**Cause:** some chapter files contain duplicate or out-of-order sub-numbering — for instance chapter 2 has multiple sections starting with `2.23`, `2.24`, `2.25`. This is a known editorial issue, see [#531](https://github.com/scutan90/DeepLearning-500-questions/issues/531).

**Solution:** use the section *title* (text after the number) to disambiguate, not the number alone.

**Prevention:** When citing, use the title — for example "§2.25 Random vs Batch Gradient" rather than "§2.25" — to survive future re-numbering.

---

### Error: Pull request is closed without merge

**Cause:** the repository has not been actively maintained since 2021. Cosmetic PRs may sit indefinitely.

**Solution:** Open an issue *before* a large PR to gauge maintainer interest. For typo fixes, post the diff inline in the issue — easier for the maintainer to merge as a one-line edit than to review a fork.

**Prevention:** Treat the repository as **stable text**, not an evolving project. Publish substantial new material as a fork (translation, derivative work) under GPL-3.0.

---

### Error: My WeChat group request is ignored

**Cause:** the WeChat contact handles in the README date to 2018–2020. The original group admins may have changed phones, exited WeChat, or moved on.

**Solution:** comment on a recent open issue and ask whether the WeChat group is still active. Do not pursue private contact through unofficial channels.

**Prevention:** Treat the README's WeChat contacts as historical. Use GitHub issues for any current question.

---

## 12. Reference: Complete Chapter Index

The authoritative ordering comes from `_sidebar.md`. Section sub-numbers come from the chapter file headings (each heading begins with `N.x.y`).

| # | Chapter | Path | Approx. coverage |
|---|---------|------|------------------|
| 0 | Introduction (README) | `README.md` | TOC, author bios, JD purchase link |
| 1 | 数学基础 (Mathematical Foundations) | `ch01_数学基础/第一章_数学基础.md` | Vectors, matrices, tensors; norms; derivatives; eigenvalue/SVD; probability distributions; conditional/joint probability |
| 2 | 机器学习基础 (Machine Learning Foundations) | `ch02_机器学习基础/第二章_机器学习基础.md` | Supervised/unsupervised, common algorithms, LDA, PCA, model evaluation, decision trees, SVM, Bayesian, EM, clustering, dimensionality |
| 3 | 深度学习基础 (Deep Learning Foundations) | `ch03_深度学习基础/第三章_深度学习基础.md` | Forward/back propagation, hyperparameters, activations (ReLU, softmax), batch size, normalization, weight init, fine-tuning, dropout |
| 4 | 经典网络 (Classic Networks) | `ch04_经典网络/第四章_经典网络.md` | LeNet5, AlexNet, ZFNet, VGG, NIN, GoogLeNet, Inception v1–v4, ResNet & variants (ResNeXt, DenseNet) |
| 5 | 卷积神经网络 (CNN) | `ch05_卷积神经网络(CNN)/第五章_卷积神经网络(CNN).md` | Convolution layer details, kernel sizing, dilations, separable conv, pooling, deconvolution, parameter counting, 1×1 convolutions |
| 6 | 循环神经网络 (RNN) | `ch06_循环神经网络(RNN)/第六章_循环神经网络(RNN).md` | Simple RNN, BPTT, LSTM, GRU, bidirectional/deep RNNs, ESN, CW-RNN |
| 7 | 生成对抗网络 (GAN) | `ch07_生成对抗网络(GAN)/ch7.md` | GAN principle, training stability, common variants |
| 8 | 目标检测 (Object Detection) | `ch08_目标检测/第八章_目标检测.md` | Sliding window, R-CNN, Fast/Faster R-CNN, ROI pooling, R-FCN, SSD, YOLO v1–v3 |
| 9 | 图像分割 (Image Segmentation) | `ch09_图像分割/第九章_图像分割.md` | FCN, U-Net, SegNet, dilated convs, RefineNet, PSPNet, DeepLab v1–v3+, Mask R-CNN, weakly-supervised |
| 10 | 强化学习 (Reinforcement Learning) | `ch10_强化学习/第十章_强化学习.md` | Application examples; transfer/hierarchical/memory/multi-agent deep RL |
| 11 | 迁移学习 (Transfer Learning) | `ch11_迁移学习/第十一章_迁移学习.md` | Multitask learning, end-to-end DL, applications |
| 12 | 网络搭建及训练 (Network Construction & Training) | `ch12_网络搭建及训练/第十二章_网络搭建及训练.md` | Practical training tactics, framework integration |
| 13 | 优化算法 (Optimization Algorithms) | `ch13_优化算法/第十三章_优化算法.md` | CPU vs GPU, sample-size issues, gradient vanishing/explosion, weight init, loss functions, mini-batch tuning, error analysis, mismatch handling |
| 14 | 超参数调整 (Hyperparameter Tuning) | `ch14_超参数调整/第十四章_超参数调整.md` | Debug processing, range selection, search strategies |
| 15 | GPU 和框架选型 (GPU & Framework Selection) | `ch15_GPU和框架选型/第十五章_异构运算、GPU及框架选型.md` | CUDA, cuDNN, GPU buying guide, framework comparison, multi-GPU, distributed, TPU, quantum outlook |
| 16 | 自然语言处理 (NLP) | `ch16_自然语言处理(NLP)/第十六章_NLP.md` | NLP foundations and tasks (stub) |
| 17 | 模型压缩、加速及移动端部署 (Model Compression & Mobile Deployment) | `ch17_模型压缩、加速及移动端部署/第十七章_模型压缩、加速及移动端部署.md` (+ `17.8.1 NCNN部署.md`) | Pruning, quantization, distillation, NCNN deployment guide |
| 18 | 后端架构选型、离线及实时计算 (Backend: Offline & Real-Time) | `ch18_后端架构选型、离线及实时计算/第十八章_后端架构选型、离线及实时计算.md` | Offline vs real-time backends |
| 18 (II) | 后端架构选型及应用场景 (Backend: Selection & Use Cases) | `ch18_后端架构选型及应用场景/第十八章_后端架构选型及应用场景.md` | Architecture selection and applications |
| 19 | 软件专利申请及权利保护 (Software Patents — China) | `ch19_软件专利申请及权利保护/第十九章_软件专利申请及权利保护.md` | Chinese software-patent application procedure |

### 12.1 Quick links

- Repository: <https://github.com/scutan90/DeepLearning-500-questions>
- Docsify documentation (renderer used by the site): <https://docsify.js.org/>
- KaTeX documentation: <https://katex.org/>
- Typora editor (recommended by the maintainers): <https://typora.io/>
- Print book on JD: <https://item.jd.com/12785031.html>
- License: GNU GPL-3.0 (`LICENSE` in repo root)

### 12.2 Email and contact

- Project email: `[email removed]`
- Issue tracker: <https://github.com/scutan90/DeepLearning-500-questions/issues>

---

_Generated May 2026 from scutan90/DeepLearning-500-questions at 6087a06. AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it. Unofficial; not affiliated with or reviewed by the project._
