TensorFlow移动端机器学习实战
  • 推荐0
  • 收藏0
  • 浏览1.1K

TensorFlow移动端机器学习实战

王众磊 陈海波 (作者)  董英 (责任编辑)

  • 书  号:37426
  • 出版日期:2019-10-01
  • 页  数:272
  • 开  本:16(185*235)
  • 出版状态:图书立项
  • 维护人:南海宝
本书主要介绍用TensorFlow在Android移动端做机器学习的开发技术,结合大量实际案例,深入浅出地讲解了开发难点和开发流程。书中简要介绍了tensorflow mobile等几种常见的机器学习框架,以及Caffee2,NNAPI等,详细讲解了tensorflow lite的原理、结构以及应用,并对tensorflow mobile和tensorflow lite进行了比较。本书还介绍了如何设计一个移动端的机器学习应用,以及移动端机器学习开发领域的现状和未来。
第一本介绍TensorFlow移动端开发及端到端应用开发的实战宝典!
王众磊:
TensorFlow的开发者之一,具有二十多年的留学和工作经验。现定居美国硅谷,长期从事软件开发工作,发表国际论文及国际专利多项。曾在谷歌等多家大型国际公司及初创企业工作过,有丰富的国内、国际开发及管理经验。
近几年以移动端开发、边缘计算、云计算和机器学习为主,从事开发和管理工作。工作之余喜欢和家人一起去各地旅游、打高尔夫球、滑雪等。

陈海波:
深兰科技DeepBlue Technology的创始人,南京工业大学特聘教授,清华大学—深兰科技机器视觉联合研究中心管理委员会主任;上海交通大学—深兰科技人工智能联合实验室管理委员会主任、中南大学—深兰科技人工智能联合研究院专家委员会委员,致力于人工智能的基础研究和应用开发,创建的深兰科学院拥有人工智能研究院、科学计算研究院、生命及AI脑科学院、自动化研究院和智能汽车研究院。
团队拥有包括CVPR、PAKDD、IEEEISI等多项国际竞赛冠军成绩,在自动驾驶和整车、机器人研发及制造、生物科技、自然语言处理(语义智能)、数据挖掘等领域都有深度布局。

前  言



2018年,我有很长一段时间在中国和美国两地跑,同时在国内工作和生活了比较长的一段时间,这是我近二十年来第一次和国内的开发者一起长时间工作。在享受各种美食之外,对国内的开发、产品和管理有了全新的了解和认识。
说起写书的起源,我本来的想法只是写一点可以作为国内工程师培训教材的东西。2018年初,TensorFlow作为一个技术热点,逐渐普及到机器学习应用开发的各个方面,但是对于TensorFlow在移动端的开发和应用还处于初始阶段。我当时也刚刚结束一个TensorFlow项目,想把这些经验和想法沉淀一下。于是我就把以前写的笔记和日志重新整理,添加一些内容并修改了文字,基本形成了一个原始版本。
后来,遇到博文视点的南海宝编辑,通过商谈,出版社欣然同意把这些资料整理出书。我的笔记和日志的内容很多和代码紧密相关,其中很多内容后来演变成了文档,我觉得这对初学者和有经验的开发者都是一个很好的参考,至少可以提供另外一个视角,让开发者多方面了解TensorFlow。所以,我就开始写作,前后花费了近两年的时间。
我是一边写作一边工作的,在这个过程中很快就遇到了两个很大的挑战。
第一是文字。我的笔记都是英文的,要把这些转换成中文,我借助了谷歌翻译,虽然翻译后的文字有很多需要修改,但至少省下了不少打字的时间。另外,就是专有术语的翻译,由于我对中文的专业术语不熟悉,所以即使简单的术语也要斟酌确定,这也花费了一些时间。如果读者在文字中发现一些奇怪的说法,还请见谅,我和编辑虽然尽了最大的努力,可能还是会有很多遗漏。
第二是重新认识和了解了国内开发的方方面面。我在美国和国内的开发者也有不少接触,我想在两边工作应该不会有什么差别,可实际工作起来还是有很多不同和挑战,感触颇深。首先是技术层面。开源的理念和软件在国内渗透到各个方面,几乎所有互联网公司都是从使用开源软件开始搭建自己的产品。由于谷歌在开源社区的贡献和影响力,国内普遍对谷歌的好感度很高,我也同享了这个荣耀。而且,很多公司和开发者也把对开源社区做出贡献看作责任和荣耀,这是一个很好的趋势,中国很快会发展出自己的开源生态和社区。
关于开发环境和工程师文化,我想提一下两边对新员工培训的区别。在国内对新员工的培训中,职业道德培训和公司文化的培训占了很大一部分。而在硅谷,至少像谷歌、脸书这些公司,培训中技术培训占了很大一部分,基本是一周的培训后,员工就要进行实际的工作,而国内很多公司的新员工第二周才开始技术工作。这里我能充分感受到中美公司之间的差别。
另外是开发管理方法,由于管理方法的不同,实际的工作中要做相应的改变。比如国内对开发和产品的进度的管理是非常严格的。但是,这种严格大都体现在层级的汇报关系上,而不是对技术细节的掌控和指导上。谷歌的工程师会经常以代码的提交作为一个工程开始和结束的标志,这在国内公司很少见到。
我希望把这些经验、想法和体会能或多或少体现在这本书里。比如,使用Markdown写文档,能使写文档变成一件不是很烦琐的事,可以让作者更专注于内容的写作,而不是花费太多时间在操作编辑器上。本书就是全部用Markdown写作完成,再转换成Word文档的。比如,使用Bazel编译,需要对代码的依赖有清晰的定义。可能很多工程师不会特别在意这点,但是通过它,工程师可以非常清楚地了解代码重用和引用的状况,避免随意的代码重用,并提高代码的质量。我希望通过这些在书中给读者传达一些不同的开发经验。
总之,我会把这本书作为2018年工作和生活的一个纪念。看到书中的各个章节,我就可以联想起写书时发生的许多事。但是,真的由于时间和我自己的能力非常有限,书中一定会有很多错误和瑕疵,还望读者能宽容和谅解。
最后,要感谢我的家人能支持和陪伴我度过2018年,我和我的母亲一起度过了2018年春节,是近20年来在国内度过的第一个春节。还要感谢我的妻子,她非常支持我,并帮助我写完这本书。还有我的两个女儿,总是能给我带来无尽的快乐,还要感谢深兰科技的创始人陈海波先生和首席战略官王博士,两位帮助我完成这本书,并提出了很多意见。
另外,感谢博文视点给我这个机会出版这本书,希望通过这本书能结识更多的开发者。还要感谢南海宝编辑在本书写作和出版过程中给予的指导和鼓励。
读者服务
 获取免费增值资源
 获取精选书单推荐
 加入读者交流群
扫码回复:37426

目录


目  录



第1章 机器学习和TensorFlow简述 1
1.1 机器学习和TensorFlow的历史及发展现状 1
1.1.1 人工智能和机器学习 1
1.1.2 TensorFlow 3
1.1.3 TensorFlow Mobile 5
1.1.4 TensorFlow Lite 5
1.2 在移动设备上运行机器学习的应用 6
1.2.1 生态和现状 7
1.2.2 从移动优先到人工智能优先 8
1.2.3 人工智能的发展 9
1.2.4 在移动设备上进行机器学习的难点和挑战 9
1.2.5 TPU 10
1.3 机器学习框架 11
1.3.1 CAFFE2 11
1.3.2 Android NNAPI 12
1.3.3 CoreML 12
1.3.4 树莓派(Raspberry Pi) 13
第2章 构建开发环境 14
2.1 开发主机和设备的选择 14
2.2 在网络代理环境下开发 15
2.3 集成开发环境IDE 16
2.3.1 Android Studio 16
2.3.2 Visual Studio Code 16
2.3.3 其他IDE 18
2.4 构建工具Bazel 18
2.4.1 Bazel生成调试 19
2.4.2 Bazel Query命令 20
2.5 装载TensorFlow 20
2.6 文档 25
第3章 基于移动端的机器学习的开发方式和流程 26
3.1 开发方式和流程简介 26
3.2 使用TPU进行训练 28
3.3 设备端进行机器学习训练 35
3.4 使用TensorFlow Serving优化TensorFlow模型 41
3.4.1 训练和导出TensorFlow模型 42
3.4.2 使用标准TensorFlow ModelServer加载导出的模型 50
3.4.3 测试服务器 50
3.5 TensorFlow扩展(Extended) 54
第4章 构建TensorFlow Mobile 55
4.1 TensorFlow Mobile的历史 55
4.2 TensorFlow代码结构 55
4.3 构建及运行 61
4.3.1 代码的流程 67
4.3.2 代码的依赖性 68
4.3.3 性能和代码跟踪 69
第5章 用TensorFlow Mobile构建机器学习应用 71
5.1 准备工作 71
5.2 图像分类(Image Classification) 74
5.2.1 应用 74
5.2.2 模型 85
5.3 物体检测(Object Detection) 87
5.3.1 应用 87
5.3.2 模型 92
5.4 时尚渲染(Stylization) 95
5.4.1 应用 95
5.4.2 模型 96
5.5 声音识别(Speech Recognization) 96
5.5.1 应用 96
5.5.2 模型 99
第6章 TensorFlow Lite的架构 101
6.1 模型格式 102
6.1.1 Protocol Buffer 102
6.1.2 FlatBuffers 105
6.1.3 模型结构 112
6.1.4 转换器(Toco) 113
6.1.5 解析器(Interpreter) 119
6.2 底层结构和设计 123
6.2.1 设计目标 123
6.2.2 错误反馈 124
6.2.3 装载模型 125
6.2.4 运行模型 126
6.2.5 定制演算子(CUSTOM Ops) 128
6.2.6 定制内核 132
6.3 工具 133
6.3.1 图像标注(label_image) 133
6.3.2 最小集成(Minimal) 143
6.3.3 Graphviz 143
6.3.4 模型评效 148
第7章 用TensorFlow Lite构建机器学习应用 151
7.1 模型设计 151
7.1.1 使用预先训练的模型 151
7.1.2 重新训练 152
7.1.3 使用瓶颈(Bottleneck) 154
7.2 开发应用 158
7.2.1 程序接口 158
7.2.2 线程和性能 162
7.2.3 模型优化 163
7.3 TensorFlow Lite的应用 170
7.3.1 声音识别 173
7.3.2 图像识别 177
7.4 TensorFlow Lite使用GPU 178
7.4.1 GPU与CPU性能比较 178
7.4.2 开发GPU代理(Delegate) 178
7.5 训练模型 182
7.5.1 仿真器 183
7.5.2 构建执行文件 183
第8章 移动端的机器学习开发 186
8.1 其他设备的支持 186
8.1.1 在iOS上运行TensorFlow的应用 186
8.1.2 在树莓派上运行TensorFlow 189
8.2 设计和优化模型 190
8.2.1 模型大小 191
8.2.2 运行速度 192
8.2.3 可视化模型 196
8.2.4 线程 196
8.2.5 二进制文件大小 197
8.2.6 重新训练移动数据 197
8.2.7 优化模型加载 198
8.2.8 保护模型文件 198
8.2.9 量化计算 199
8.2.10 使用量化计算 202
8.3 设计机器学习应用程序要点 207
第9章 TensorFlow的硬件加速 209
9.1 神经网络接口 209
9.1.1 了解Neural Networks API运行时 210
9.1.2 Neural Networks API编程模型 211
9.1.3 NNAPI 实现的实例 213
9.2 硬件加速 222
9.2.1 高通网络处理器 223
9.2.2 华为HiAI Engine 229
9.2.3 简要比较 235
9.2.4 开放式神经网络交换格式 236
第10章 机器学习应用框架 237
10.1 ML Kit 237
10.1.1 面部识别(Face Detection) 242
10.1.2 文本识别 247
10.1.3 条形码识别 248
10.2 联合学习(Federated Learning) 248
第11章 基于移动设备的机器学习的未来 252
11.1 TensorFlow 2.0和路线图 252
11.1.1 更简单的开发模型 253
11.1.2 更可靠的跨平台的模型发布 254
11.1.3 TensorFlow Lite 254
11.1.4 TensorFlow 1.0 和TensorFlow 2.0的不同 255
11.2 人工智能的发展方向 255
11.2.1 提高人工智能的可解释性 255
11.2.2 贡献社会 256
11.2.3 改善生活 258

读者评论

  • 没有本书的例子代码?

    clteng发表于 2019/12/17 20:07:43
  • 阅读了部分内容,感觉还是不错。只是没有找到本书的例子代码。

    evawwj发表于 2019/10/23 9:30:01

下载资源

相关博文

  • 超51亿的移动用户,TensorFlow移动端方兴未艾

    超51亿的移动用户,TensorFlow移动端方兴未艾

    管理员账号 2019-11-06

    在我国互联网的发展过程中,PC互联网已经日趋饱和,移动互联网却呈现着井喷式发展。现在国内移动用户已超15亿,全球移动用户已超过51亿,2019年IoT装置数量预计将超过全球人口总数! 伴随着移动终端价格的下降及WiFi的广泛使用,...

    管理员账号 2019-11-06
    211 0 0 0

相关图书

AI魔法绘画:用Stable Diffusion挑战无限可能

陈然 (作者)

本书以实际操作为导向,详细讲解基于Stable Diffusion进行AI绘画的完整学习路线,包括绘画技巧、图片生成、提示词编写、ControlNet插件、模型...

 

一本书读懂ChatGPT

魏进锋 (作者)

本书以通俗易懂的语言对ChatGPT进行全面讲解。 本书分为10章。 第1章对ChatGPT及ChatGPT的创造者OpenAI进行初步讲解。 第2章讲解...

 

可解释人工智能导论

杨强 范力欣 朱军 陈一昕 张拳石 朱松纯 陶大程 崔鹏 周少华 刘琦 黄萱菁 张永锋 (作者)

本书全面介绍可解释人工智能的基础知识、理论方法和行业应用。全书分为三部分,共11 章。第一部分为第1 章,揭示基于数据驱动的人工智能系统决策机制,提出一种基于人...

 

隐私计算

陈凯 杨强 (作者)

在大数据和人工智能时代,如何在享受新技术带来的便利性的同时保护自己的隐私,是一个重要的问题。本书系统讲解了隐私计算的基础技术和实践案例,全书共有11 章,按层次...

 

知识图谱与认知智能:基本原理、关键技术、应用场景与解决方案

吴睿 (作者)

认知的高度决定了你创造价值的高度,包括你对世界的认知及世界对你的认知。知识图谱与认知智能技术的发展,既孕育了圈层变更的机会,也带来了人、机器、企业如何协同与博弈...

 

实用推荐系统

Kim Falk (作者) 李源 朱罡罡 温睿 (译者)

要构建一个实用的“智能”推荐系统,不仅需要有好的算法,还需要了解接收推荐的用户。本书分为两部分,第一部分侧重于基础架构,主要介绍推荐系统的工作原理,展示如何创建...

¥119.00