目录
序 .1
前言 .3
第1 章 AI 是魔法 . 11
1.1 JavaScript 的AI 之路 . 12
1.2 什么是智能? 13
1.3 AI 历史 . 15
1.4 神经网络 16
1.5 如今的AI 19
1.6 为什么选择TensorFlow.js? . 20
1.6.1 强大支持. 20
1.6.2 在线阅读. 21
1.6.3 离线阅读. 21
1.6.4 隐私 21
1.6.5 多样性 . 21
1.7 机器学习类型 22
1.7.1 快速定义:有监督学习 23
1.7.2 快速定义:无监督学习 23
1.7.3 快速定义:半监督学习 23
1.7.4 快速定义:强化学习 24
1.7.5 信息过载. 25
1.8 AI 无处不在 25
1.9 框架全貌 26
什么是模型? 27
1.10 本书内容 28
1.10.1 相关代码 29
1.10.2 各章小节 32
1.10.3 常见AI/ML 术语 . 32
1.11 本章复习 36
复习题 . 36
第2 章 TensorFlow.js 简介 38
2.1 你好,TensorFlow.js 38
2.2 利用TensorFlow.js 40
2.3 准备TensorFlow.js 41
2.4 在浏览器中设置TensorFlow.js . 42
2.4.1 使用NPM 43
2.4.2 包含脚本标记 43
2.5 在Node 中设置TensorFlow.js 44
2.6 检验TensorFlow.js 是否正常工作 46
下载和运行示例 . 47
2.7 真正使用TensorFlow.js 49
2.7.1 Toxicity 分类器 50
2.7.2 加载模型. 56
2.7.3 分类 58
2.8 自己动手 59
2.9 本章复习 59
2.9.1 思考题: 卡车警报! . 59
2.9.2 复习题 . 60
第3 章 张量介绍 62
3.1 为什么使用张量? 62
3.2 你好,张量 . 63
3.2.1 创建张量. 65
3.2.2 数据练习的张量 . 68
3.3 张量闪亮登场 71
3.3.1 张量提供速度 71
3.3.2 张量提供直接访问 . 71
3.3.3 张量批处理数据 . 72
3.4 内存中的张量 72
3.4.1 撤销张量. 73
3.4.2 自动张量清理 74
3.5 张量获取 76
获取张量数据 77
3.6 张量操作 79
3.6 1 张量和数学 79
3.6.2 使用张量实现推荐 . 81
3.7 本章复习 87
3.7.1 思考题: 是什么让你如此独特? 87
3.7.2 复习题 . 88
第4 章 图像张量 90
4.1 视觉张量 91
4.2 快速图像张量 94
4.3 JPG、PNG 和GIF,天呐! 97
4.3.1 浏览器: 张量到图像 . 98
4.3.2 浏览器: 图像到张量 . 99
4.3.3 Node: 张量到图像 102
4.3 4 Node: 图像到张量 106
4.4 常见图像修改 . 108
4.4.1 镜像图像张量 108
4.4.2 调整图像张量大小 111
4.4.3 裁剪图像张量 114
4.4.4 新的图像工具 115
4.5 本章复习 115
4.5.1 思考题: 随机张量排序 . 116
4.5.2 复习题 117
第5 章 模型介绍 119
5.1 加载模型 120
5.1.1 通过公共URL 加载模型 . 121
5.1.2 从其他位置加载模型 . 123
5.2 第一个模型 124
5.2.1 加载、编码和询问模型 125
5.2.2 解释结果 128
5.2.3 清理棋盘 130
5.3 第一个TensorFlow Hub 模型 . 130
5.3.1 探索TFHub 131
5.3.2 使用Inception v3 . 132
5.4 第一个叠加模型 134
5.4.1 本地化模型 . 135
5.4.2 标记检测结果 137
5.5 本章复习 140
5.5.1 思考题: 可爱的脸 141
5.5.2 复习题 142
第6 章 高级模型和UI . 143
6.1 再谈MobileNet 144
SSD MobileNet . 146
6.2 包围框输出 149
6.2.1 读取模型输出 149
6.2.2 显示所有输出 151
6.3 清理检测结果 . 152
6.3.1 质量检查 153
6.3.2 IoU 和NMS 154
6.4 增加文本叠加 . 159
6.4.1 解决低对比度问题 159
6.4.2 解决绘制顺序问题 161
6.5 连接到网络摄像头 164
6.5.1 从图像到视频 165
6.5.2 激活网络摄像头 165
6.5.3 绘制检测结果 166
6.6 本章复习 168
6.6.1 思考题: 头号侦探 168
6.6.2 复习题 169
第7 章 建模资源 170
7.1 利用外部模型 . 171
7.1.1 模型动物园 . 171
7.1.2 转换模型 171
7.2 第一个定制模型 175
7.2.1 认识Teachable Machine 176
7.2.2 使用Teachable Machine 178
7.2.3 采集数据和训练 179
7.2.4 验证模型 181
7.3 机器学习问题 . 184
7.3.1 少量数据 184
7.3.2 差数据 184
7.3.3 数据偏差 185
7.3.4 过拟合 185
7.3.5 欠拟合 186
7.4 获得数据集 187
流行的数据集 188
7.5 本章复习 190
7.5.1 思考题: R.I.P. 转换MNIST 190
7.5.2 复习题 191
第8 章 训练模型 192
8.1 训练基础 193
8.1.1 数据准备 194
8.1.2 设计模型 195
8.1.3 明确学习指标 197
8.1.4 训练模型 199
8.1.5 综合 199
8.2 非线性训练基础 202
8.2.1 收集数据 203
8.2.2 为神经元增加激活函数 204
8.2.3 监视训练 206
8.2.4 改进训练 208
8.3 本章复习 214
8.3.1 思考题: 模型架构师 214
8.3.2 复习题 215
第9 章 分类模型和数据分析 . 217
9.1 分类模型 218
9.2 泰坦尼克号 220
Titanic 数据集 221
9.3 Danfo.js . 222
9.3.1 准备Titanic 数据 . 223
9.3.2 使用Titanic 数据进行训练 . 229
9.4 特征工程 232
9.4.1 Dnotebook 232
9.4.2 Titanic 数据可视化 . 234
9.4.3 创建特征(即预处理) 237
9.4.4 完成特征工程后的训练结果 240
9.4.5 审查结果 240
9.5 本章复习 241
9.5.1 思考题: 开船 . 242
9.5.2 复习题 242
第10 章 图像训练 . 244
10.1 理解卷积 . 245
10.1.1 卷积简要总结 . 246
10.1.2 增加卷积层 248
10.2 理解最大池化 249
10.2.1 最大池化简要总结 250
10.2.2 增加最大池化层 251
10.3 训练图像分类 252
处理图像数据 253
10.4 戴上分院帽 254
10.4.1 开始 . 256
10.4.2 转换图像文件夹 258
10.4.3 CNN 模型 . 261
10.4.4 训练和保存 265
10.5 测试模型 . 266
10.5.1 建立一个绘图板 267
10.5.2 读取绘图板 268
10.6 本章复习 . 271
10.6.1 思考题: 保存魔法 271
10.6.2 复习题 272
第11 章 迁移学习 . 274
11.1 迁移学习如何工作? 275
迁移学习神经网络 . 276
11.2 简单的MobileNet 迁移学习 . 277
TensorFlow Hub 象棋识别! 279
11.3 利用分层模型实现迁移学习 . 284
11.3.1 删减MobileNet 模型层 285
11.3.2 分层特征模型 . 287
11.3.3 统一模型 287
11.4 不需要训练 288
简单的KNN:兔子和跑车 . 289
11.5 本章复习 . 292
11.5.1 思考题: 快速学习 . 293
11.5.2 复习题 294
第12 章 Dicify: 顶石项目 295
12.1 骰子挑战 . 296
12.2 计划 297
12.2.1 数据 . 297
12.2.2 训练 . 299
12.2.3 网站 . 299
12.3 生成训练数据 300
12.4 训练 304
12.5 网站界面 . 306
12.5.1 分解成骰子 307
12.5.2 重构图像 309
12.6 本章复习 . 311
12.6.1 思考题: 简单的二值化 313
12.6.2 复习题 314
后记 315
附录A 复习题答案 319
附录B 思考题答案 326
附录C 专利和授权 337