适读人群: 深度学习从业者;嵌式工程师;从初级到高级的各级学生、教师、研究人员;其他对深度学习和TinyML感兴趣的人员。 1)内容过硬。谷歌TensorFlow团队创始成员领衔撰写,谷歌工程师翻译并审校; 2)大咖推荐。Arduino联合创始人、Arm副总裁联袂推荐; 3)题材新颖。TinyML里程碑级著作,手把手教你在Arduino和微控制器上部署ML; 4)知识体系完善。适合各层次学生及从业人员,无需任何机器学习或者微控制器发经验。
售 价:¥
纸质售价:¥104.30购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
O'Reilly Media, Inc.介绍
业界评论
译者序一
译者序二
前言
本书排版约定
示例代码
O'Reilly在线学习平台(O'Reilly Online Learning)
联系我们
致谢
第1章 简介
1.1 嵌入式设备
1.2 技术变迁
第2章 入门
2.1 本书目标读者
2.2 需要的硬件
2.3 需要的软件
2.4 我们希望你学到的东西
第3章 快速了解机器学习
3.1 什么是机器学习
3.2 深度学习的工作流程
3.2.1 选择一个目标
3.2.2 收集数据集
3.2.3 设计一个模型架构
3.2.4 训练模型
3.2.5 转换模型
3.2.6 运行推断
3.2.7 评估和故障排除
3.3 小结
第4章 TinyML之“Hello World”:创建和训练模型
4.1 我们要创建什么
4.2 我们的机器学习工具链
4.2.1 Python和Jupyter Notebook
4.2.2 Google Colaboratory
4.2.3 TensorFlow和Keras
4.3 创建我们的模型
4.3.1 导入依赖项
4.3.2 生成数据
4.3.3 拆分数据
4.3.4 定义基本模型
4.4 训练我们的模型
4.4.1 训练度量指标
4.4.2 绘制历史数据
4.4.3 改进我们的模型
4.4.4 测试
4.5 为TensorFlow Lite转换模型
转换为C文件
4.6 小结
第5章 TinyML之“Hello World”:创建应用程序
5.1 详解测试
5.1.1 导入依赖项
5.1.2 配置测试
5.1.3 准备记录数据
5.1.4 映射我们的模型
5.1.5 创建一个AllOpsResolver
5.1.6 定义一个Tensor Arena
5.1.7 创建一个解释器
5.1.8 检查输入张量
5.1.9 对输入运行推断
5.1.10 读取输出
5.1.11 运行测试
5.2 项目文件结构
5.3 详解源文件
5.3.1 从main_functions.cc开始
5.3.2 通过output_hanlder.cc处理输出
5.3.3 完成main_functions.cc
5.3.4 理解main.cc
5.3.5 运行我们的应用程序
5.4 小结
第6章 TinyML之“Hello World”:部署到微控制器
6.1 什么是微控制器
6.2 Arduino
6.2.1 在Arduino上处理输出
6.2.2 运行示例
6.2.3 尝试修改
6.3 SparkFun Edge
6.3.1 在SparkFun Edge上处理输出
6.3.2 运行示例
6.3.3 测试程序
6.3.4 查看调试数据
6.3.5 尝试修改
6.4 ST Microelectronics STM32F746G Discovery套件
6.4.1 在STM32F746G上处理输出
6.4.2 运行示例
6.4.3 尝试修改
6.5 小结
第7章 唤醒词检测:创建应用程序
7.1 我们要创建什么
7.2 应用架构
7.2.1 模型介绍
7.2.2 所有的功能组件
7.3 详解测试
7.3.1 基本流程
7.3.2 音频提供程序
7.3.3 特征提供程序
7.3.4 命令识别程序
7.3.5 命令响应程序
7.4 监听唤醒词
运行我们的应用
7.5 部署到微控制器
7.5.1 Arduino
7.5.2 SparkFun Edge
7.5.3 ST Microelectronics STM32F746G Discovery套件
7.6 小结
第8章 唤醒词检测:训练模型
8.1 训练我们的新模型
在Colab中训练模型
8.2 在我们的项目中使用模型
8.2.1 替换模型
8.2.2 更新标签
8.2.3 更新command_responder.cc
8.2.4 运行脚本的其他方法
8.3 模型的工作方式
8.3.1 可视化输入
8.3.2 特征生成是如何工作的
8.3.3 理解模型架构
8.3.4 理解模型输出
8.4 使用你自己的数据训练
8.4.1 语音命令数据集
8.4.2 在你自己的数据集上训练
8.4.3 如何录制你自己的音频
8.4.4 数据增强
8.4.5 模型架构
8.5 小结
第9章 行人检测:创建应用程序
9.1 我们在创建什么
9.2 应用程序架构
9.2.1 模型介绍
9.2.2 所有的功能组件
9.3 详解测试
9.3.1 基本流程
9.3.2 图像提供程序
9.3.3 检测响应程序
9.4 行人检测
9.5 部署到微处理器
9.5.1 Ardunio
9.5.2 SparkFun Edge
9.6 小结
第10章 行人检测:训练模型
10.1 选择机器
10.2 配置Google Cloud Platform实例
10.3 训练框架选择
10.4 构建数据集
10.5 训练模型
10.6 TensorBoard
10.7 评估模型
10.8 将模型导出到TensorFlow Lite
10.8.1 导出到GraphDef Protobuf文件
10.8.2 冻结权重
10.8.3 量化并转换到TensorFlow Lite
10.8.4 转换为C源文件
10.9 训练其他类别
10.10 理解架构
10.11 小结
第11章 魔杖:创建应用程序
11.1 我们要创建什么
11.2 应用程序架构
11.2.1 模型介绍
11.2.2 所有的功能组件
11.3 详解测试
11.3.1 基本流程
11.3.2 加速度传感器处理程序
11.3.3 手势预测程序
11.3.4 输出处理程序
11.4 检测手势
11.5 部署到微处理器
11.5.1 Ardunio
11.5.2 SparkFun Edge
11.6 小结
第12章 魔杖:训练模型
12.1 训练模型
12.1.1 在Colab中训练
12.1.2 执行脚本的其他方式
12.2 模型是如何工作的
12.2.1 可视化输入数据
12.2.2 理解模型架构
12.3 训练你自己的数据
12.3.1 获取数据
12.3.2 修改训练脚本
12.3.3 训练
12.3.4 使用新的模型
12.4 小结
学习机器学习
接下来的内容
第13章 TensorFlow Lite for Microcontrollers
13.1 什么是TensorFlow Lite for Microcontrollers
13.1.1 TensorFlow简介
13.1.2 TensorFlow Lite简介
13.1.3 TensorFlow Lite for Microcontrollers简介
13.1.4 需求
13.1.5 为什么解释执行模型
13.1.6 项目生成
13.2 编译系统
13.2.1 专用代码
13.2.2 Makefile
13.2.3 编写测试
13.3 支持一个新的硬件平台
13.3.1 打印到日志
13.3.2 实现DebugLog()
13.3.3 运行所有的目标
13.3.4 与Makefile编译整合
13.4 支持一个新的IDE或新的编译系统
13.5 在项目和代码库之间整合代码更改
13.6 回馈开源
13.7 支持新的硬件加速器
13.8 理解文件格式
FlatBuffers
13.9 将TensorFlow Lite移动平台算子移植到Micro
13.9.1 分离引用代码
13.9.2 为算子创建一个Micro拷贝
13.9.3 将测试移植到Micro框架
13.9.4 创建一个Bazel测试
13.9.5 将你的算子添加到AllOpsResolver
13.9.6 创建一个Makefile测试
13.10 小结
第14章 设计你自己的TinyML应用程序
14.1 设计过程
14.2 你需要微控制器还是更大的设备
14.3 了解可行性
14.4 站在巨人的肩膀上
14.5 找一些相似的模型训练
14.6 查看数据
14.7 绿野仙踪
14.8 先可以在桌面系统中运行
第15章 优化延迟
15.1 首先确保你要优化的部分很重要
15.2 更换硬件
15.3 改进模型
15.3.1 估算模型延迟
15.3.2 如何加速你的模型
15.4 量化
15.5 产品设计
15.6 优化代码
性能剖析
15.7 优化算子
15.7.1 寻找已优化的实现
15.7.2 编写你自己的优化实现
15.7.3 利用硬件特性
15.7.4 加速器和协处理器
15.8 回馈开源
15.9 小结
第16章 优化功耗
16.1 开发直觉
16.1.1 典型的元件功耗
16.1.2 硬件选择
16.2 测量实际功耗
16.3 估算模型的功耗
16.4 降低功耗
16.4.1 间歇性轮停
16.4.2 级联设计
16.5 小结
第17章 优化模型和二进制文件大小
17.1 了解系统限制
17.2 估算内存使用率
17.2.1 闪存使用
17.2.2 RAM使用
17.3 关于不同问题的模型准确率和规模的大致数字
17.3.1 语音唤醒词模型
17.3.2 加速度传感器预测性维修模型
17.3.3 行人检测
17.4 模型选择
17.5 减小可执行文件的大小
17.5.1 测量代码大小
17.5.2 Tensorflow Lite for Microcontrollers占用多少空间
17.5.3 OpResolver
17.5.4 了解单个函数的大小
17.5.5 框架常量
17.6 真正的微型模型
17.7 小结
第18章 调试
18.1 训练与部署之间准确率的损失
18.1.1 预处理差异
18.1.2 调试预处理
18.1.3 在设备上评估
18.2 数值差异
18.2.1 这样的数值差异是真的问题吗
18.2.2 建立度量指标
18.2.3 与基线比较
18.2.4 交换实现
18.3 神秘的崩溃与挂起
18.3.1 桌面调试
18.3.2 日志跟踪
18.3.3 霰弹枪调试
18.3.4 内存损坏
18.4 小结
第19章 将模型从TensorFlow移植到TensorFlow Lite
19.1 了解需要什么算子
19.2 查看Tensorflow Lite中支持的算子
19.3 将预处理和后处理移至应用程序代码
19.4 按需自己实现算子
19.5 优化算子
19.6 小结
第20章 隐私、安全和部署
20.1 隐私
20.1.1 隐私设计文档
20.1.2 使用隐私设计文档
20.2 安全
20.3 部署
20.4 小结
第21章 了解更多
21.1 TinyML基金会
21.2 SIG Micro
21.3 TensorFlow网站
21.4 其他框架
21.5 Twitter
21.6 TinyML的朋友们
21.7 小结
附录A 使用和生成Arduino库ZIP文件
附录B 在Arduino上捕获音频
作者介绍
译者介绍
审校者介绍
封面介绍
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜