通读笔记(一):前言 + 第 1—6 章
备料阶段的原始笔记,不是拆解正文。写给后面做大纲和写正文的人看。 出处一律用「
text/<文件>:<行号>(搜「短语」)」的写法,行号是清洗文本的自然段号。 第 7—11 章的笔记在reading-notes-2.md,主线、切章建议、缺口清单、书内错误汇总都在那一份的 §15—§20。
00. 出版信息(总纲第 2 节「这是谁在什么时候写的」要用)
从 epub 的版权页读到(版权页只用于填书卡与总纲的成书背景,不作为拆解正文的出处):
| 项 | 值 |
|---|---|
| 书名 | Python深度学习及智能车竞赛实践 |
| 作者 | 徐国艳;刘聪琳 编著 |
| 出版社 | 机械工业出版社 |
| 出版时间 | 2024 年 2 月(版权页未标版次) |
| ISBN | 9787111752141 |
| 字数 | 161 千字(与我们清洗后的 161k 字符吻合) |
时代坐标(从书内容推出来的,可交叉验证成书时间):
- 书里最新的事件是 2023 年 1 月 Ultralytics 开源 YOLOV8(
text/12-ch11-11-cnn.txt:147); - 主线赛事是 2023 年的百度智慧交通创意赛(赛题主题「长江之歌」,
text/02-ch01.txt:185); - 提到 ChatGPT、文心一言,但只有一句话(
text/02-ch01.txt:53); - 提到党的二十大报告(2022 年 10 月),第 5 章还拿它做词云实例(
text/06-ch05.txt:297,搜「二十大报告词云生成」)。
⇒ 这是一本 2024 年初出版、内容截至 2023 年初的教材。 它写在大模型爆发之后, 但整本书站在计算机视觉 + 边缘部署这条线上,几乎不碰大模型 —— 这是它的定位,不是它的遗漏。
作者背景: 前言致谢北航研究生蔡捍、张峰(text/01-fm-preface.txt:19);
配套 MOOC 挂在中国大学 MOOC 的 BUAA(北航)课程下(:23)。
利益相关提示: 全书唯一使用的框架是百度飞桨,唯一使用的板卡是百度 EdgeBoard,
唯一使用的训练平台是百度 AI Studio,数据标注推荐百度 EasyData ——
因为这是百度冠名赛项的配套教材。这一条要在总纲里说清楚。
0. 先说三件影响全书怎么写的硬事实
0.1 这本书的代码和表格全是图片,清洗文本里一行代码都没有
原书 epub 里有 732 张图(EPUB/images/image_*.jpg)。逐段核对过:
每一处「实例 x.y」、每一张「表 x.y」、每一条语法格式,在 xhtml 里都是 <img src="../images/image_0NN.jpg">。
典型现场(第 2 章 ReLU 那段):正文写「我们可以用一个简单的 if-statement 来描述这个问题:」
后面紧跟一张 image_020.jpg,然后是「编程实现如实例 2.1 所示」+ image_021.jpg。
清洗文本里这两处什么都没有,只剩前后两句话。
对拆解的后果(重要,写正文的人必须知道):
| 后果 | 怎么办 |
|---|---|
| 引不到书里的代码 | 我们要讲的机制自己写示范代码,并标明是我们写的,不是书里的 |
| 引不到书里的表格(操作符表、函数表、参数表) | 这些恰恰是「查手册就有」的部分,本来也不该抄进拆解 |
| 引不到公式的排版形式 | 公式的文字描述大多在正文里有(如感知器的 z=w₁x₁+w₂x ₂+…+b,text/05-ch04.txt:151),够用 |
| 章内小节标题、概念解释、为什么这么做 —— 这些全在正文里,完好 | 这是我们真正要拆的东西 |
book-health 判 OK(161k 字,丢字率正常),图密度约 45 张/万字,远低于「图注书」的 100 张/万字门槛。
判定:能写,而且该写 —— 但要写成「概念与工程链条的拆解」,不是「代码讲义」。
0.2 这本书有两副面孔,后一副才是它的价值
- 前 6 章(第 1—6 章,约 71k 字)是一本标准的 Python 入门教材:语法、数据类型、控制结构、 函数与类、文件与格式化。这部分任何一本 Python 教材都有,而且它最该讲清楚的代码全在图里。
- 后 5 章(第 7—11 章,约 90k 字)是一条别处很难找的完整工程链: 从「机器学习是什么」一路走到「模型跑在一块 EdgeBoard 板卡上、车沿着赛道跑起来」。
这本书真正不可替代的是后半段。 前半段的价值不在语法本身, 而在它每个语法点都挂着一个智能车场景(电池电压检查、差速转向、赛道绘制、数据集切分), 这条线本身是可拆的。
0.3 全书是围着一场具体比赛写的
「全国大学生智能汽车竞赛 · 百度智慧交通创意组」。2023 年赛题主题是「长江之歌」,
要求用飞桨 PaddlePaddle + EdgeBoard 完成自动驾驶任务(text/02-ch01.txt:185,搜「长江之歌」)。
两个核心任务贯穿全书:自动巡航(回归)、目标检测(分类/检测)。
不知道这两个任务长什么样,后 5 章读不懂。
1. 前言(text/01-fm-preface.txt)
- 教学目标写得很明确:「基于 Python 养成计算思维 → 能用 Python 做数据分析 → 学懂 AI →
能设计深度学习模型解决复杂工程问题」(
:11,搜「养成计算思维」)。这是全书的骨架。 - 定位是高校 + 企业合著的教材,引入「产业级工程实践项目」,并用竞赛内容串联各章知识点(
:15)。 - 配 MOOC:
https://www.icourse163.org/course/BUAA-1470412177(:23)。 - 致谢里提到北航研究生蔡捍、张峰(
:19)—— 说明第一作者在北航。
读者定位:零基础的在校本科生,目标是参赛。 这决定了书里大量篇幅在讲最基础的东西。
2. 第 1 章 绪论(text/02-ch01.txt,16.8k 字)
2.1 这一章实际讲了四件不相干的事
- AI 三次浪潮(
:23—:55):计算驱动(1956—70 年代初)→ 知识驱动(70 年代初—90 年代中) → 数据驱动(90 年代中至今)。每一波的代表物:ELIZA/塞缪尔跳棋 → 专家系统 → 深蓝/AlphaGo/ChatGPT。 - 中国 AI 发展史五阶段(
:59—:103):曲折认识 → 艰难起步 → 迎来曙光 → 快速发展 → 国家战略。 这一节有大量政治性表述和政策文件罗列,占了整章约 1/3 篇幅。 - AI 三大流派(
:127—:139):符号主义 / 连接主义 / 行为主义。 —— 这一节是全章唯一对后文有承重作用的:书末尾明确说「本书主要介绍目前主流的深度学习方法, 深度学习是深层的神经网络方法」(:141),即本书站在连接主义这一支上。 - 程序设计语言分类 + Python 特点 + 开发环境(
:195—:295): 低级/高级语言、编译执行/解释执行、结构化/面向对象、Python 六条特点、IDLE 与文件式/交互式。
2.2 值得记的具体点
| 点 | 位置 | 备注 |
|---|---|---|
| 图灵 1936 年自动机理论、1950 年「机器能思考吗?」 | :21(搜「自动机理论」) | 书把这两件事都算作 AI 理论基础 |
| 达特茅斯会议 1956 年夏,10 人,两个月,首次使用「人工智能」一词 | :31(搜「达特茅斯」) | 发起人:麦卡锡、明斯基、罗彻斯特、香农 |
| Hinton 2006 年论文,书写成「Learning Mul-tiple Layers of Representation」 | :51(搜「Hinton」) | 这里有个待核的缺口,见 §8 |
| 深蓝 1997 击败卡斯帕罗夫;AlphaGo 2016/2017 胜李世石、柯洁 | :49、:51 | |
| AI 四要素:知识、数据、算法、算力 | :11(搜「四个要求」) | 后文又写成「算法、算力、算料」三要素(:55),书内口径不一致 |
| 智能驾驶核心技术:感知、决策、控制 | 01-fm-preface.txt:9 | 全书隐含的系统框架 |
| Python 1991 年由 Guido van Rossum 创建 | :237 | |
| Python 是「混合模式」:先编成字节码,再解释执行 | :225(搜「中间形式的字节码」) | 书自己纠正了「Python 是纯解释型」的说法 |
| 前 6 章用 IDLE,第 7 章起用 Jupyter Notebook | :261(搜「第7章往后」) | 这是全书分水岭的书内证据 |
2.3 判断:这一章拆解时该怎么处理
大部分是背景,只有一小块承重。
- 三大流派必须讲(它交代了「本书为什么只讲神经网络」);
- 三次浪潮可以压成一小节(它解释了「为什么 2006 年之后才轮到深度学习」);
- 中国 AI 发展史那一整节 + 政策文件罗列 —— 如实说明书里有,但不展开(属于教材的思政要求, 不是技术链条的一环)。这也是「三个声音」里要标清楚的地方之一。
- 语言分类那一节可以并进后面的 Python 章。
3. 第 2 章 Python 基本语法元素及数据类型(text/03-ch02-2-python.txt,12.4k 字)
3.1 骨架
- IPO 程序设计法(Input-Process-Output)
:19—:27—— 这是书给零基础学生的第一个思维模具, 后面每个实例都按 IPO 拆。 - 两个引子实例,都不是「Hello World」而是本行的东西:
- 实例 2.1:ReLU 激活函数(
:31—:35)。书在第 2 章就把激活函数搬出来了: 「ReLU 全称为 Rectified Linear Unit……实际上是斜坡函数,即 f(x)=max(0,x)」(:33)。 这是全书最早的一处伏笔 —— 第 8 章讲神经网络时会回收。 - 实例 2.2:智能车差速转向(
:39)。转角预测值在 [-1,1] 之间,>0 右转、<0 左转; 右转就右轮减速、左轮不变。这个「[-1,1] 的转角」贯穿到第 10 章的巡航模型输出。
- 实例 2.1:ReLU 激活函数(
- 语法元素九件(
:47—:151):注释、缩进、标识符、赋值、input()、print()、eval()、分支、库引用。 - 基本数据类型(
:159—:313):整数/浮点/复数、字符串、字符串格式化.format()。 - 两个内置库:math(4 常数 + 44 函数)、time。
3.2 值得记的具体点
| 点 | 位置 |
|---|---|
浮点数精度:print(0.1+0.2) 输出 0.30000000000000004 | :175(搜「0.30000000000000004」) |
| 浮点数只保证 15 位准确,误差量级 2e-16 | :183(搜「0.000 000 000 000 000 2」) |
| 字符串正反双索引:正向从 0,反向从 -1 | :253 |
切片 <string>[N:M:K],K<0 从后往前 | :265 |
eval() 的安全隐患;eval(input()) 组合 | :137、:139 |
| Unicode / UTF-8:Python 字符串以 Unicode 存储,中英文都算 1 个字符 | :273、:279 |
中文可作 标识符(智能车、python智能车 都合法) | :81 |
3.3 习题里的场景(反映作者想让学生会什么)
- 用 time 库 + 格式化输出打调试日志(日期、车速、转角、电池电压)
:475; - 车速 = 电机转速 × 轮胎周长 × 传动比,轮胎直径 2.5cm、传动比 2:1
:477。
4. 第 3 章 程序控制结构(text/04-ch03.txt,9.1k 字)
4.1 骨架
流程图七元素 → 三种控制结构(顺序/分支/循环)→ if / if-else / if-elif-else → for / while / for-else / while-else / break / continue → try-except-else-finally → random 库 → turtle 库。