TinyML:基于TensorFlowLite在Arduino和超低功耗微控制器上部署机器学习

TinyML:基于TensorFlowLite在Arduino和超低功耗微控制器上部署机器学习

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

TinyML里程碑级著作,手把手教你在Arduino和微控制器上部署ML。

内容简介

深度学习网络正在变得越来越小。Google Assistant团队可以使用大小只有14KB的模型检测单词——模型小到可以在微控制器上运行。在这本实用的书中,你将进入TinyML的世界。TinyML将深度学习和嵌入式系统相结合,使得微型设备可以做出令人惊叹的事情。

本书解释了如何训练足够小的模型以适合任何环境。对于希望在嵌入式系统中搭建机器学习项目的软件及硬件开发人员而言,本书是一个理想的指南,它将一步步地指导你搭建一系列TinyML项目。阅读本书不需要任何机器学习或者微控制器开发经验。

你将深入了解以下内容:

如何创建语音识别程序、行人检测程序和响应手势的魔杖程序;

如何使用Arduino和超低功耗微控制器;

机器学习的基本知识以及如何训练自己的模型;

如何训练模型以理解音频、图像和加速度传感器数据;

如何使用TensorFlow Lite for Microcontrollers,这是Google用于TinyML的工具包;

如何调试程序并提供隐私和安全保障;

如何优化延迟、功耗、模型以及二进制文件大小。

作者简介

作者Daniel Situnayake,Google领导TensorFlow Lite的开发宣传工作,并协助运营TinyML meetup小组。

他是Tiny Farms的联合创始人,这是美国第一家利用自动化技术以工业规模生产昆虫蛋白的公司。

章节目录

版权信息

O'Reilly Media, Inc.介绍

业界评论

译者序一

译者序二

前言

第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转换模型

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 训练我们的新模型

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 理解文件格式

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上捕获音频

TinyML:基于TensorFlowLite在Arduino和超低功耗微控制器上部署机器学习是2020年由机械工业出版社华章分社出版,作者[美] Daniel Situnayake。

得书感谢您对《TinyML:基于TensorFlowLite在Arduino和超低功耗微控制器上部署机器学习》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
基于机器学习的工作流活动推荐 电子书
随着云计算、大数据等的快速发展,越来越多的组织用信息化手段进行流程管理。如何提升流程执行的智能化程度、动态性和柔性,以提高对非标准业务的管理效率,是流程管理面临的一个重要问题。本书基于流程管理系统积累的日志,提出了3种流程管理的工作流活动推荐方法,分别为基于用户类别近邻的活动推荐方法、基于Pearson相关系数的活动推荐方法和基于协同过滤的活动推荐方法,并介绍了一种流程信息的可视化算法,实现了一个
机器学习实战 电子书
《机器学习实战》面向日常任务的高效实战内容,介绍并实现机器学习的主流算法。
实用机器学习 电子书
大数据时代为机器学习的应用提供了广阔的空间,各行各业涉及数据分析的工作都需要使用机器学习算法。本书围绕实际数据分析的流程展开,着重介绍数据探索、数据预处理和常用的机器学习算法模型。本书从解决实际问题的角度出发,介绍回归算法、分类算法、推荐算法、排序算法和集成学习算法。在介绍每种机器学习算法模型时,书中不但阐述基本原理,而且讨论模型的评价与选择。为方便读者学习各种算法,本书介绍了R语言中相应的软件包
机器学习公式详解 电子书
适读人群 :(1)高等院校人工智能、计算机、自动化等相关专业机器学习方向的学生;(2)学术界机器学习领域的研究人员和教师;(3)工业界对机器学习感兴趣的专业人员和工程师。 1.周志华教授“西瓜书”《机器学习》公式完全解析指南! “南瓜书”系Datawhale成员自学笔记,对“西瓜书”中250个重难点公式做了详细解析和推导(重难点公式覆盖率达99%),旨在解决机器学习中的数学难题。 2.机器学习初学小白提升数学基础能力的必备练习册! 以本科数学基础视角对“西瓜书”里比较难理解的公式加以解析和推导细节,补充大量重、难点数学知识和参考材料,分享在学习中遇到的“坑”以及跳过这个“坑”的方法,对于初学机器学习的小白也能上手练习! 3.俞勇、王斌、李沐、程明明、陈光(博主@爱可可-爱生活)、徐亦达等人工智能领域大咖亲笔推荐
机器学习工程实战 电子书
机器学习入门手册《机器学习精讲》姊妹篇,人工智能和机器学习领域专业人士的多年实践结晶,深入浅出讲解机器学习应用和工程实践。