搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
TensorFlow移动端机器学习实战
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121374265
  • 作      者:
    王众磊,陈海波著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2019
收藏
编辑推荐

通过本书,你将学会如何使用TensorFlow进行移动端机器学习应用的开发,以及了解如下内容:

    ● TensorFlow对移动平台支持的起源和思路

    ● TensorFlow对硬件加速技术的支持

● TensorFlow Lite的架构和实现原理

● TensorFlow在各种移动平台和嵌入式平台上的开发实例

● 基于TensorFlow和谷歌云进行机器学习的方法

● 基于TensorFlow的机器学习服务框架

● 基于TensorFlow的各种开源技术和工程实践


展开
作者简介

王众磊: 

TensorFlow的开发者之一,具有二十多年的留学和工作经验。现定居美国硅谷,长期从事软件开发工作,发表国际论文及国际专利多项。曾在谷歌等多家大型国际公司及初创企业工作过,有丰富的国内、国际开发及管理经验。

近几年以移动端开发、边缘计算、云计算和机器学习为主,从事开发和管理工作。工作之余喜欢和家人一起去各地旅游、打高尔夫球、滑雪等。

 

陈海波:

深兰科技创始人。从澳大利亚归国创业,专注于人工智能基础研究和应用开发,带领科研团队创办深兰科技,是国内无人智能零售行业开创者。旗下企业人工智能战略布局覆盖智能汽车、智能环境及AI CITY等众多领域,人工智能产品商用落地居行业领先地位。

陈海波先生是中国管理科学研究院学术委员、清华大学创+学生创意创新创业实践基地创业导师,中南大学-深兰科技人工智能联合研究院第一届专家委员会委员,曾先后荣获来自国内外quanwei机构与媒体评选的IEEEISI world cup 2019 Zuii佳导师、“第四届上海市工商业领军人物”、“2019中国人工智能杰出人物”、“2018硬科技行业风云人物奖”、“中国智能制造风云人物”、“中国流通领域管理创新先锋人物”、“2018ECI年度商业创新影响力人物”及“金鸡湖人才计划科技领军人才”等十多项个人荣誉。


展开
内容介绍

随着人工智能技术的普及和边缘计算等新兴技术的兴起,很多人工智能的应用逐渐从云端向边缘设备和终端设备转移,基于移动端设备和嵌入式设备等小型设备的人工智能应用的开发越来越重要。

TensorFlow作为开源机器学习框架,提供了对不同开发环境和设备的支持。本书详细讲解了如何使用TensorFlow进行端到端机器学习应用的开发,以及使用TensorFlow Lite在小型设备(包括Android、iOS、树莓派(Raspberry Pi))上进行应用开发的要点和相应的实战案例。

本书也讲解了针对Android的硬件加速技术,以及业界流行的机器学习应用框架。本书代码基本对应TensorFlow 2.0。

本书适合没有人工智能开发经验的初学者,以及有一定相关经验并且希望在人工智能应用上更加深入了解的开发者阅读。


展开
精彩书摘

  6.2  底层结构和设计
  TensorFlow Lite提供了C++和Java API,在这两套API里,API设计都特别强调了易用性。TensorFlow Lite是专为移动设备和小型设备上的快速推理而设计的,TensorFlow Lite希望为开发人员提供简单而高效的C++ API,以便在TensorFlow Lite模型上高效运行推理计算。
  6.2.1  设计目标
  TensorFlow Lite是一种推理引擎(Inference Engine),可用于在包括移动设备在内的小型设备上运行。开发者要将SavedModel或冻结后的GraphDef转换为TensorFlow Lite自己的FlatBuffers格式。
  在使用TensorFlow Lite前,开发者需要一种简单的方法来加载他们的模型,将数据提供给推理引擎并得到结果。TensorFlow的很多代码可以直接在移动设备上运行,但是TensorFlow Lite简化了开发者的工作流程,并且能和TensorFlow及其他开源架构直接进行协调和工作。
  应该注意的是,TensorFlow Lite通常针对小型设备,而不仅仅是移动设备。这里很难定义小型设备,可以基本认为TensorFlow Lite都可以适用于不在数据中心和作为桌面计算设备以外的任何场景。TensorFlow Lite本身的文件占用空间很小,运行占用的空间也比较小。另外,TensorFlow Lite对外部库的依赖性也很小。
  为了在TensorFlow Lite中运行推理模型,用户需要将模型加载到FlatBufferModel对象中,然后由Interpreter执行。FlatBufferModel需要保持在Interpreter的整个生命周期内有效,并且单独的FlatBufferModel可以由多个Interpreter同时使用。具体而言,必须在使用它的任何解释器对象之前创建FlatBufferModel对象,并且不释放该对象,直到它们全部被销毁。
  TensorFlow Lite的最简单的用法如下所示:
  std::unique_ptr model = tflite::FlatBufferModel::BuildFromFile(path_to_model);
  tflite::ops::builtin::BuiltinOpResolver resolver;
  tflite::Interpreter interpreter = tflite::Interpreter::Create(model, resolver);
  interpreter->SetInput(0, std::vector({...}));
  interpreter->Invoke(); const Tensor* output = interpreter-> GetOutputTensor(0);
  ……

展开
目录

第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

展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证