万本电子书0元读

万本电子书0元读

顶部广告

TinyML:基于TensorFlow Lite在Arduino和超低功耗微控制器上部署机器学习电子书

适读人群: 深度学习从业者;嵌式工程师;从初级到高级的各级学生、教师、研究人员;其他对深度学习和TinyML感兴趣的人员。 1)内容过硬。谷歌TensorFlow团队创始成员领衔撰写,谷歌工程师翻译并审校; 2)大咖推荐。Arduino联合创始人、Arm副总裁联袂推荐; 3)题材新颖。TinyML里程碑级著作,手把手教你在Arduino和微控制器上部署ML; 4)知识体系完善。适合各层次学生及从业人员,无需任何机器学习或者微控制器发经验。

售       价:¥

纸质售价:¥107.60购买纸书

33人正在读 | 0人评论 6.8

作       者:(美)皮特·沃登(Pete Warden),(美)丹尼尔·西图纳亚克(Daniel Situnayake)

出  版  社:机械工业出版社

出版时间:2020-08-01

字       数:39.5万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
深度学习网络正在变得越来越小。Google Assistant团队可以使用大小只有14KB的模型检测单词——模型小到可以在微控制器上运行。在这本实用的书中,你将TinyML的世界。TinyML将深度学习和嵌式系统相结合,使得微型设备可以做出令人惊叹的事情。 本书解释了如何训练足够小的模型以适合任何环境。对于希望在嵌式系统中搭建机器学习项目的软件及硬件发人员而言,本书是一个理想的指南,它将一步步地指导你搭建一系列TinyML项目。阅读本书不需要任何机器学习或者微控制器发经验。 你将深了解以下内容: 如何创建语音识别程序、行人检测程序和响应手势的魔杖程序。 如何使用Arduino和超低功耗微控制器。 机器学习的基本知识以及如何训练自己的模型。 如何训练模型以理解音频、图像和加速度传感器数据。 如何使用TensorFlow Lite for Microcontrollers,这是Google用于TinyML的工具包。 如何调试程序并提供隐私和安全保障。 如何优化延迟、功耗、模型以及二制文件大小。<br/>【推荐语】<br/>适读人群: 深度学习从业者;嵌式工程师;从初级到高级的各级学生、教师、研究人员;其他对深度学习和TinyML感兴趣的人员。   1)内容过硬。谷歌TensorFlow团队创始成员领衔撰写,谷歌工程师翻译并审校; 2)大咖推荐。Arduino联合创始人、Arm副总裁联袂推荐; 3)题材新颖。TinyML里程碑级著作,手把手教你在Arduino和微控制器上部署ML; 4)知识体系完善。适合各层次学生及从业人员,无需任何机器学习或者微控制器发经验。<br/>【作者】<br/>Pete Warden Google公司TensorFlow面向移动和嵌式设备部分的技术主管,也是TensorFlow团队的创始成员之一。他曾是Jetpac的首席技术官(CTO)和创始人,该公司于2014年被Google收。   Daniel Situnayake Google领导TensorFlow Lite的发宣传工作,并协助运营TinyML meetup小组。他是Tiny Farms的联合创始人,这是美国家利用自动化技术以工业规模生产昆虫蛋白的公司。   译者与审校者简介 魏兰 软件发工程师,现就职于Google北京。机器视觉,Android性能优化爱好者。博客:blog.csdn.net/xiaowei_cqu。   卜杰 毕业于南京邮电大学,现于Google北京担任软件工程师。邮箱:prikevs@gmail.com。   王铁震 现就职于Google北京,Tensorflow团队核心软件发工程师。邮箱:wangtz@google.com。<br/>
目录展开

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

作者介绍

译者介绍

审校者介绍

封面介绍

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部