第1章 AI与面向对象Python 1
1.1 AI思维简史 2
1.2 Python语言与AI 2
1.3 布置Python开发环境 3
1.4 开始编写Python程序 6
1.5 面向对象(Object-Oriented)入门 10
1.5.1 对象(Object) 10
1.5.2 消息(Message) 10
1.5.3 事件(Event) 10
1.6 软件中的对象(Object) 11
1.6.1 抽象的目的 11
1.6.2 抽象表示 12
1.6.3 数据和函数 12
1.6.4 历史的足迹 12
1.7 对象与变量(Variable) 13
1.7.1 数据类型 13
1.7.2 变量即对象 14
1.8 对象与函数(Function) 17
1.8.1 函数的角色 17
1.8.2 事件驱动观念 18
1.9 自然界的分类 19
1.9.1 分类与抽象 19
1.9.2 对象与类 19
1.9.3 类的体系 20
1.10 软件的分类 21
1.10.1 类是数据类型 21
1.10.2 类的用途:描述对象的属性与行为 22
第2章 Python的对象与类 24
2.1 OOP入门 25
2.2 对象的概念 25
2.3 对象分类与组合 27
2.3.1 类的永恒性 27
2.3.2 将对象分门别类 27
2.3.3 对象的组合关系 28
2.4 AKO抽象关系 30
2.5 对象行为与接口 36
2.5.1 接口入门 36
2.5.2 消息传递与对象行为 37
2.5.3 对象的运算行为 38
第3章 善用类 46
3.1 如何描述对象:善用类 47
3.2 如何创建软件对象 48
3.3 对象参考 49
3.4 构造函数 52
3.5 子类如何创建对象 54
第4章 对象的组合 58
4.1 认识self参考 59
4.2 建立对象的包含关系 60
4.3 self参考值的妙用 64
4.4 包容多样化物件 71
4.5 集合对象 73
第5章 类的封装性 76
5.1 对象的封装性 77
5.2 类:创造对象的封装性 77
5.3 类的私有属性与函数 81
5.4 类级别的属性 89
5.5 类级别的函数 93
第6章 类的继承体系 96
6.1 继承的意义 97
6.2 建立类继承体系 98
6.3 函数覆写的意义 108
第7章 活用抽象类 111
7.1 抽象类与继承体系 112
7.2 Python抽象类的表示法 112
7.2.1 一般具象类 112
7.2.2 抽象类 114
7.3 从“抽象类”衍生“具象类” 115
7.4 抽象类的妙用:默认行为 118
7.4.1 Python默认行为的表示法 118
7.4.2 默认行为的意义 120
7.5 默认函数的妙用:反向调用 120
第8章 发挥“多态性” 127
8.1 “多态性”的意义 128
8.1.1 自然界的多态性 128
8.1.2 多态性物体 129
8.2 多态函数 130
8.3 可覆写函数 132
第9章 如何设计抽象类 138
9.1 抽象:抽出共同的现象 139
9.2 抽象的步骤 141
9.2.1 Step 1:抽出名称、引数及内容都一致的函数 147
9.2.2 Step 2:抽出名称相同、参数及内容有差异的函数 149
9.3 洞悉“变”与“不变” 152
9.4 着手设计抽象类 154
第10章 接口与抽象类 160
10.1 接口的意义 161
10.2 以Python抽象类来实现接口 162
10.3 接口设计实例一:并联电池对象 167
10.3.1 不理解原理但也能用 167
10.3.2 实现步骤 169
10.4 接口设计实例二:串联电池对象 172
10.4.1 基本设计 172
10.4.2 实现步骤 173
10.4.3 总结 176
10.5 接口设计实例三:Chain Of Responsibility设计模式 177
第11章 不插电学AI 183
11.1 “不插电学AI”的意义 184
11.2 AlphaGo的惊人学习能力 184
11.3 范例:一只老鼠的探索及学习 184
11.4 记录老鼠的探索选择及结果 186
11.5 老鼠当教练:训练AI机器人 188
11.5.1 以简单算数,让机器人表达智能 188
11.5.2 机器人智能的提升过程 189
11.5.3 一回生、两回熟 191
11.5.4 三回变高手 192
11.5.5 第四回合训练:迈向完美 194
11.5.6 重新检测一次 195
第12章 撰写单层Perceptron程序 198
12.1 开始“插电学AI”:使用Python 199
12.2 展开第#0组数据的训练 200
12.3 进行更多组数据的训练 202
12.4 加入学习率 206
12.5 增添一个Training类 209
12.6 一个更详细的Perceptron代码 213
第13章 使用TensorFlow编程 225
13.1 TensorFlow入门 226
13.2 安装TensorFlow环境 226
13.3 开始使用TensorFlow 230
13.4 展开第1回合的训练:以老鼠教练为例 237
13.5 展开100回合更周全的训练 240
13.6 设计Perceptron类 243
13.7 采用TensorFlow的损失函数 245
13.8 撰写多层Perceptron程序 248
第14章 TensorFlow应用范例 251
14.1 mnist手写数字识别范例 252
14.2 开始训练NN模型 256
14.3 改进NN模型:建立两层Perceptron 260
14.4 改进NN模型:建立三层Perceptron 263
14.5 撰写一个MLP类 265
第15章 如何导出AI模型 268
15.1 导出模型入门 269
15.2 机器人:像老鼠一样学习 270
15.3 基于TensorFlow建立AI模型 270
15.4 存入Checkpoint文件 272
15.5 读取Checkpoint文件 275
15.6 读取流图定义文件 277
15.7 导出模型:写入.pb文件 280
15.8 导入模型,读取.pb文件 284