TinyML:基于TensorFlow Lite在Arduino和超低功耗微控制器上部署机器学习
Pete Warden, Daniel Situnayake
魏兰, 卜杰 译
出版时间:2020年10月
页数:432
深度学习网络正在变得越来越小。Google Assistant团队可以使用大小只有14KB的模型检测单词——模型小到可以在微控制器上运行。在这本实用的书中,你将进入TinyML的世界。TinyML将深度学习和嵌入式系统相结合,使得微型设备可以做出令人惊叹的事情。
本书解释了如何训练足够小的模型以适合任何环境。对于希望在嵌入式系统中搭建机器学习项目的软件及硬件开发人员而言,本书是一个理想的指南,它将一步步地指导你搭建一系列TinyML项目。阅读本书不需要任何机器学习或者微控制器开发经验。
你将深入了解以下内容:
● 如何创建语音识别程序、行人检测程序和响应手势的魔杖程序。
● 如何使用Arduino和超低功耗微控制器。
● 机器学习的基本知识以及如何训练自己的模型。
● 如何训练模型以理解音频、图像和加速度传感器数据。
● 如何使用TensorFlow Lite for Microcontrollers,这是Google用于TinyML的工具包。
● 如何调试程序并提供隐私和安全保障。
● 如何优化延迟、功耗、模型以及二进制文件大小。
  1. 前言
  2. 第1章 简介
  3. 1.1 嵌入式设备
  4. 1.2 技术变迁
  5. 第2章 入门
  6. 2.1 本书目标读者
  7. 2.2 需要的硬件
  8. 2.3 需要的软件
  9. 2.4 我们希望你学到的东西
  10. 第3章 快速了解机器学习
  11. 3.1 什么是机器学习
  12. 3.2 深度学习的工作流程
  13. 3.3 小结
  14. 第4章 TinyML之“Hello World”:创建和训练模型
  15. 4.1 我们要创建什么
  16. 4.2 我们的机器学习工具链
  17. 4.3 创建我们的模型
  18. 4.4 训练我们的模型
  19. 4.5 为TensorFlow Lite转换模型
  20. 4.6 小结
  21. 第5章 TinyML之“Hello World”:创建应用程序
  22. 5.1 详解测试
  23. 5.2 项目文件结构
  24. 5.3 详解源文件
  25. 5.4 小结
  26. 第6章 TinyML之“Hello World”:部署到微控制器
  27. 6.1 什么是微控制器
  28. 6.2 Arduino
  29. 6.3 SparkFun Edge
  30. 6.4 ST Microelectronics STM32F746G Discovery套件
  31. 6.5 小结
  32. 第7章 唤醒词检测:创建应用程序
  33. 7.1 我们要创建什么
  34. 7.2 应用架构
  35. 7.3 详解测试
  36. 7.4 监听唤醒词
  37. 7.5 部署到微控制器
  38. 7.6 小结
  39. 第8章 唤醒词检测:训练模型
  40. 8.1 训练我们的新模型
  41. 8.2 在我们的项目中使用模型
  42. 8.3 模型的工作方式
  43. 8.4 使用你自己的数据训练
  44. 8.5 小结
  45. 第9章 行人检测:创建应用程序
  46. 9.1 我们在创建什么
  47. 9.2 应用程序架构
  48. 9.3 详解测试
  49. 9.4 行人检测
  50. 9.5 部署到微处理器
  51. 9.6 小结
  52. 第10章 行人检测:训练模型
  53. 10.1 选择机器
  54. 10.2 配置Google Cloud Platform实例
  55. 10.3 训练框架选择
  56. 10.4 构建数据集
  57. 10.5 训练模型
  58. 10.6 TensorBoard
  59. 10.7 评估模型
  60. 10.8 将模型导出到TensorFlow Lite
  61. 10.9 训练其他类别
  62. 10.10 理解架构
  63. 10.11 小结
  64. 第11章 魔杖:创建应用程序
  65. 11.1 我们要创建什么
  66. 11.2 应用程序架构
  67. 11.3 详解测试
  68. 11.4 检测手势
  69. 11.5 部署到微处理器
  70. 11.6 小结
  71. 第12章 魔杖:训练模型
  72. 12.1 训练模型
  73. 12.2 模型是如何工作的
  74. 12.3 训练你自己的数据
  75. 12.4 小结
  76. 第13章 TensorFlow Lite for Microcontrollers
  77. 13.1 什么是TensorFlow Lite for Microcontrollers
  78. 13.2 编译系统
  79. 13.3 支持一个新的硬件平台
  80. 13.4 支持一个新的IDE或新的编译系统
  81. 13.5 在项目和代码库之间整合代码更改
  82. 13.6 回馈开源
  83. 13.7 支持新的硬件加速器
  84. 13.8 理解文件格式
  85. 13.9 将TensorFlow Lite移动平台算子移植到Micro
  86. 13.10 小结
  87. 第14章 设计你自己的TinyML应用程序
  88. 14.1 设计过程
  89. 14.2 你需要微控制器还是更大的设备
  90. 14.3 了解可行性
  91. 14.4 站在巨人的肩膀上
  92. 14.5 找一些相似的模型训练
  93. 14.6 查看数据
  94. 14.7 绿野仙踪
  95. 14.8 先可以在桌面系统中运行
  96. 第15章 优化延迟
  97. 15.1 首先确保你要优化的部分很重要
  98. 15.2 更换硬件
  99. 15.3 改进模型
  100. 15.4 量化
  101. 15.5 产品设计
  102. 15.6 优化代码
  103. 15.7 优化算子
  104. 15.8 回馈开源
  105. 15.9 小结
  106. 第16章 优化功耗
  107. 16.1 开发直觉
  108. 16.2 测量实际功耗
  109. 16.3 估算模型的功耗
  110. 16.4 降低功耗
  111. 16.5 小结
  112. 第17章 优化模型和二进制文件大小
  113. 17.1 了解系统限制
  114. 17.2 估算内存使用率
  115. 17.3 关于不同问题的模型准确率和规模的大致数字
  116. 17.4 模型选择
  117. 17.5 减小可执行文件的大小
  118. 17.6 真正的微型模型
  119. 17.7 小结
  120. 第18章 调试
  121. 18.1 训练与部署之间准确率的损失
  122. 18.2 数值差异
  123. 18.3 神秘的崩溃与挂起
  124. 18.4 小结
  125. 第19章 将模型从TensorFlow移植到TensorFlow Lite
  126. 19.1 了解需要什么算子
  127. 19.2 查看Tensorflow Lite中支持的算子
  128. 19.3 将预处理和后处理移至应用程序代码
  129. 19.4 按需自己实现算子
  130. 19.5 优化算子
  131. 19.6 小结
  132. 第20章 隐私、安全和部署
  133. 20.1 隐私
  134. 20.2 安全
  135. 20.3 部署
  136. 20.4 小结
  137. 第21章 了解更多
  138. 21.1 TinyML基金会
  139. 21.2 SIG Micro
  140. 21.3 TensorFlow网站
  141. 21.4 其他框架
  142. 21.5 Twitter
  143. 21.6 TinyML的朋友们
  144. 21.7 小结
  145. 附录A 使用和生成Arduino库ZIP文件
  146. 附录B 在Arduino上捕获音频
书名:TinyML:基于TensorFlow Lite在Arduino和超低功耗微控制器上部署机器学习
译者:魏兰, 卜杰 译
国内出版社:机械工业出版社
出版时间:2020年10月
页数:432
书号:978-7-111-66422-2
原版书书名:TinyML: Machine Learning with TensorFlow Lite on Arduino and
原版书出版商:O'Reilly Media
Pete Warden
 
Pete Warden是Google公司TensorFlow面向移动和嵌入式设备部分的技术主管,也是TensorFlow团队的创始成员之一。他曾是Jetpac的首席技术官(CTO)和创始人,该公司于2014年被Google收购。
 
 
Daniel Situnayake
 
Daniel Situnayake在Google领导TensorFlow Lite的开发宣传工作,并协助运营TinyML meetup小组。他是Tiny Farms的联合创始人,这是美国第一家利用自动化技术以工业规模生产昆虫蛋白的公司。