本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
通过本书,你将学会如何使用TensorFlow进行移动端机器学习应用的开发,以及了解如下内容: ● TensorFlow对移动平台支持的起源和思路 ● TensorFlow对硬件加速技术的支持 ● TensorFlow Lite的架构和实现原理 ● TensorFlow在各种移动平台和嵌入式平台上的开发实例 ● 基于TensorFlow和谷歌云进行机器学习的方法 ● 基于TensorFlow的机器学习服务框架 ● 基于TensorFlow的各种开源技术和工程实践
TensorFlow已经成为机器学习的流行框架和工业届标准,早期的TensorFlow以云端和数据中心中的机器学习为主,近期的一个趋势是,逐渐向移动端和设备端转移。推动这个趋势的动力包括人们对机器学习理论和认知的提高、算法及技术的改进、软件和硬件性能的提高,以及专有硬件的出现等, 主要的是,用户的需求和越来越丰富的场景需求。现在 移动用户已超15亿, 移动用户已超过51亿,2019年IoT装置数量预计将超过 人口总数。我们相信,在未来,云端和移动端相结合的人工智能和设备端独立的人工智能应用会慢慢成为主流。作为TensorFlow的开发者和使用者,本书作者完整地讲解了使用TensorFlow进行端到端开发的实例和开发技巧,同时分享了如何使用开源工具进行软件开发的 工程实践和经验。本书提供了 的视角帮助读者开启不同的思路,即使把本书作为一本软件开发和工程开发的书籍来读,也会使读者受益匪浅。
王众磊
TensorFlow的开发者之一,具有二十多年的留学和工作经验。现定居美国硅谷,长期从事软件开发工作,发表 论文及 专利多项。曾在谷歌等多家大型 公司及初创企业工作过,有丰富的 、 开发及管理经验。
近几年以移动端开发、边缘计算、云计算和机器学习为主,从事开发和管理工作。工作之余喜欢和家人一起去各地旅游、打高尔夫球、滑雪等。
陈海波
深兰科技DeepBlue Technology的创始人,南京工业大学特聘教授,清华大学—深兰科技机器视觉联合研究中心管理委员会主任;上海交通大学—深兰科技人工智能联合实验室管理委员会主任、中南大学—深兰科技人工智能联合研究院专家委员会委员,致力于人工智能的基础研究和应用开发,创建的深兰科学院拥有人工智能研究院、科学计算研究院、生命及AI脑科学院、自动化研究院和智能汽车研究院。
团队拥有包括CVPR、PAKDD、IEEEISI等多项 竞赛 成绩,在自动驾驶和整车、机器人研发及制造、生物科技、自然语言处理(语义智能)、数据挖掘等领域都有深度布局。
目 录
第1章 机器学习和TensorFlow简述1
1.1 机器学习和TensorFlow的历史及发展现状1
1.1.1 人工智能和机器学习1
1.1.2 TensorFlow3
1.1.3 TensorFlow Mobile5
1.1.4 TensorFlow Lite5
1.2 在移动设备上运行机器学习的应用6
1.2.1 生态和现状7
1.2.2 从移动优先到人工智能优先8
1.2.3 人工智能的发展9
1.2.4 在移动设备上进行机器学习的难点和挑战9
1.2.5 TPU10
1.3 机器学习框架11
1.3.1 CAFFE211
1.3.2 Android NNAPI12
1.3.3 CoreML12
1.3.4 树莓派(Raspberry Pi)13
第2章 构建开发环境14
2.1 开发主机和设备的选择14
2.2 在网络代理环境下开发15
2.3 集成开发环境IDE16
2.3.1 Android Studio16
2.3.2 Visual Studio Code16
2.3.3 其他IDE18
2.4 构建工具Bazel18
2.4.1 Bazel生成调试19
2.4.2 Bazel Query命令20
2.5 装载TensorFlow20
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 Mobile55
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 Buffer102
6.1.2 FlatBuffers105
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 Graphviz143
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使用GPU178
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 在树莓派上运行TensorFlow189
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 Engine229
9.2.3 简要比较235
9.2.4 开放式神经网络交换格式236
0章 机器学习应用框架237
10.1 ML Kit237
10.1.1 面部识别(Face Detection)242
10.1.2 文本识别247
10.1.3 条形码识别248
10.2 联合学习(Federated Learning)248
1章 基于移动设备的机器学习的未来252
11.1 TensorFlow 2.0和路线图252
11.1.1 简单的开发模型253
11.1.2 可靠的跨平台的模型发布254
11.1.3 TensorFlow Lite254
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