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).
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 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.
- Open https://github.com/scutan90/DeepLearning-500-questions
- Click any folder named
chXX_... - Open the
.mdfile inside that starts with第N章_(orch7.mdfor 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 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.
git clone https://github.com/scutan90/DeepLearning-500-questions.git
cd DeepLearning-500-questions
python -m http.server 3000
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 for editing and reading. Typora renders both KaTeX-style math ($x$, $$y$$) and the inline [TOC] directive at the top of each chapter.
- Install Typora (free during beta; paid afterwards)
File → OpenanychXX_*/第N章_*.md- The
[TOC]directive at the top expands into a clickable table of contents
Note
Typora is the recommended editor in
English version/README.mdfor 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:
- Skim chapters 1–3 — verify you can answer every section header without reading the answer.
- Mark gaps — for any header where you cannot answer, read the section. Move on.
- Then chapters 4 (classic networks), 5 (CNN), 6 (RNN) — the network-architecture core.
- Pick task-specific chapters based on the role: vision (8, 9), generative (7), NLP (16), production (17, 18a, 18b), GPU/infra (15).
- 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+Fon the_sidebar.mdfor 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:
- Read your textbook chapter on a topic.
- Open the matching chapter here and answer every section header before reading the answer.
- Compare your answer to the book's. Note the discrepancies.
- 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"):
- Open
_sidebar.mdto confirm which chapter covers it. - Use
Ctrl+Fto find the topic in the chapter file. - 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:
- Read Section 9 (Contributing).
- Read Section 6 (Local rendering & math) so your previews match the published format.
- Open
English version/README.mdfor 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.
$\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
第十七章_*.mdfile and a supplementary17.8.1 NCNN部署.mdcovering 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:

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).
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 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
git clone https://github.com/scutan90/DeepLearning-500-questions.git
cd DeepLearning-500-questions
Then start any static server. Examples:
# Python (built-in)
python -m http.server 3000
# Node.js
npx serve -p 3000 .
# Docsify CLI (optional)
npm install -g docsify-cli
docsify serve .
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:
- Fork the repository to your GitHub account.
- Settings → Pages → Source:
mainbranch, root. - 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
.nojekyllfile 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} |
\[...\] / \(...\) |
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:
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.htmlfirst.
6.3 Math in Typora
Typora renders math natively if you enable inline math in preferences. From English version/README.md:
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:
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:
- 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.
- 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.
- 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.mdmentions "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'squn.pngimage 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:
# Find every section that mentions ResNet
rg -n "ResNet" -g "ch*/*.md"
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). The simplest workaround uses Pandoc:
# 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(orlualatex) 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:
- Run the docsify site (§5.1).
- Open the chapter you want.
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:
2018-09-15 contributor 修改 2.5 节的笔误
2019-03-22 contributor 增加 2.40.x 模型评估的新内容
For a more authoritative changelog, use git log:
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:
谈继勇 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.
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)
- Fork the project.
- Make changes — record your name and affiliation in the format
Name-Affiliation(e.g. Daxie-West Lake University). - Review for grammar and technical errors.
- Preview formatting using Typora with the recommended settings (see §6.3).
- Commit changes to your fork.
- Open a pull request, clearly stating what changes you made and why.
- 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:
- More English translation — chapters 5–19 are entirely untranslated (see open issue #548 "English translation").
- A PDF build — multiple users have asked for a downloadable PDF (open issues #393, #481, #376).
- Filling missing sections — chapter 16 (NLP) is short, and a few in-text references point to sections that were never written (#536 asks where 2.3–2.7 went; the headings exist but several sub-sections are stubs).
- Math/typo corrections — for instance #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, #393, #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 or §8.3.
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) or Typora (§6.3) for math.
Q: Some images are not loading in my Markdown viewer.
A: Common causes:
- Non-ASCII filename — some images use Chinese characters in the filename. Most viewers handle them; some older Markdown previewers do not.
- Nested directory paths — figures under
ch02_机器学习基础/img/ch2/2.40.10/1.pngneed the full path; some viewers stop at the firstimg/level. - Path normalization — docsify needs the
beforeEachhook fromindex.htmlto 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:
- Fork, rename the repo to e.g.
DeepLearning-500-questions-es. - Translate
English version/README.md(orREADME.md) to your language. - Translate chapters at your own pace; merge upstream improvements as the original repo accepts them.
- 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:
- Verify
<script async ... src="...mathjax.js?config=TeX-AMS-MML_HTMLorMML">is loading (check the browser's Network tab). - If MathJax is blocked (some networks block CDNJS), download
MathJax.jslocally 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:
python -m http.server 3000
Open http://localhost:3000 instead of file:///....
Prevention: Bookmark the localhost:3000 URL or alias the command:
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:
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:
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 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.
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 (
LICENSEin repo root)
12.2 Email and contact
- Project email:
[email removed] - Issue tracker: https://github.com/scutan90/DeepLearning-500-questions/issues