搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
移动深度学习
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121371820
  • 作      者:
    李永会著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2019
收藏
编辑推荐

√ 移动端部署神经网络稀缺资源:ARM汇编|NEON指令|Winograd等实战经验。

√ 深入移动计算设备体系结构的 PaddlePaddle 移动深度学习系统 Paddle-Lite。

√ 将深度学习模型以zui小体积和资源消耗运行在移动设备上,同时追求高性能。

√ 商业场景中克服技术挑战如模型压缩|编译裁剪|代码精简|多平台支持|汇编优化。

√ 覆盖移动设备内部结构|汇编指令|CPU性能优化|GPU编程|移动端深度学习框架。

√ 底层框架|上层应用开发双重视角,从应用需求到底层技术优化,再到产品落地。


展开
作者简介

李永会 

百度App移动研发部资深工程师。2015年起在百度从事图像搜索和语音搜索客户端研发工作,主持了多个重要创新项目,包括百度Lens、实时翻译等。同时负责开源移动端深度学习框架Paddle-Lite的开发,长期从事移动端AI高性能计算优化工作,在多种软硬件平台上高性能运行深度学习技术。在工作之余有读史、书法等爱好。


展开
内容介绍

《移动深度学习》由浅入深地介绍了如何将深度学习技术应用到移动端运算领域,书中尽量避免罗列公式,尝试用浅显的语言和几何图形去解释相关内容。本书第1章展示了在移动端应用深度学习技术的Demo,帮助读者建立直观的认识;第2章至第4章讲述了如何在移动端项目中应用深度学习技术;第5章至第8章的难度略大,主要讲述如何深入地调整框架,适配并定制自己的框架。

《移动深度学习》适合移动端研发工程师阅读,也适合所有对移动端运算领域感兴趣的朋友阅读。


展开
精彩书评

人工智能技术已经快速发展6年了,在很多行业中重新定义了用户体验,但这仅仅是开始。随着5G商用大规模落地,以及智能手机硬件性能越来越强、AIoT设备的快速普及,基于云—边缘—端的算法和算力结构仍有非常大的发展空间,技术上也有许多挑战。阅读本书能够快速理解移动端深度学习的原理,以及如何将其应用到实际业务中。期待大家在系统学习实践、扩展技术视野的同时,创造出更多移动AI时代的优秀产品。

——陈凯  百度多模搜索部T10

 

在移动端部署神经网络,可以利用的资源是很有限的,本书作者看到了这一问题,并将自己多年实践积累的ARM汇编、NEON指令、Winograd等方面的经验一一介绍,对于广大应用开发者有实战性的指导意义。

——张扬  百度智能汽车事业部底层软件架构师

 

近年来深度学习技术取得了飞速发展,深度学习模型在视觉、语音、自然语言处理等多个领域都有了商业化应用产品。然而,深度学习技术的发展也伴随着模型体积和计算量的迅速增大,这对于将其应用在移动设备上提出了巨大挑战。

我有幸和本书作者在PaddlePaddle项目中进行过深度合作,希望在国内自底向上彻底地自研一套开源深度学习系统。其中关键的一部分就是Paddle-Lite,它将深度学习模型以zui小的体积和资源消耗运行在移动设备上,同时追求高性能。在这个过程中遇到了非常多的技术挑战,比如模型压缩、编译裁剪、代码精简、多平台支持、汇编优化等,最终都成功克服了。

本书正是基于作者丰富的工业实战经验写作的,首先介绍了基础的数学原理和深度学习模型,然后深入移动计算设备的体系结构,以及如何在这种体系结构上进行高效的深度学习计算,非常有实战指导价值。借为此书写推荐的机会,希望能和国内的同行共勉,共同打造AI时代的核心系统。

——潘欣  Google前TensorFlow工程师

展开
目录

第1章初窥移动端深度学习技术的应用1
1.1本书示例代码简介1
1.1.1安装编译好的文件1
1.1.2在DemoApp中应用神经网络技术2
1.2移动端主体检测和分类2
1.3在线上产品中以“云+端计算”的方式应用深度学习技术4
1.4在移动端应用深度学习技术的业界案例6
1.4.1植物花卉识别6
1.4.2奇妙的风格化效果7
1.4.3视频主体检测技术在App中的应用7
1.5在移动端应用深度学习技术的难点8
1.5.1在服务器端和移动端应用深度学习技术的难点对比8
1.5.2实现AR实时翻译功能9
1.6编译运行深度学习App12
1.6.1mobile-deep-learning项目环境简介12
1.6.2mobile-deep-learning项目整体代码结构13
1.6.3mobile-deep-learning通用环境依赖14
1.7在iOS平台上搭建深度学习框架15
1.7.1在iOS平台上搭建mobile-deep-learning项目15
1.7.2在OSX平台上编译mobile-deep-learning项目16
1.7.3iOS平台上mobile-deep-learning项目的Demo代码结构17
1.8在Android平台上搭建深度学习框架18
1.8.1Android平台上mobile-deep-learning项目的环境依赖18
1.8.2Android平台上mobile-deep-learning项目的Demo代码结构19
1.8.3用Paddle-Lite框架编译与开发Android应用20
1.8.4开发一个基于移动端深度学习框架的AndroidApp22
第2章以几何方式理解线性代数基础知识32
2.1线性代数基础32
2.1.1标准平面直角坐标系32
2.1.2改变坐标系的基向量34
2.2向量的几何意义35
2.2.1向量的加减运算36
2.2.2向量的数乘运算37
2.3线性组合的几何意义38
2.4线性空间40
2.5矩阵和变换41
2.6矩阵乘法43
2.7行列式46
2.8矩阵的逆48
2.9秩49
2.10零空间50
2.11点积和叉积的几何表示与含义51
2.11.1点积的几何意义51
2.11.2叉积的几何意义52
2.12线性代数的特征概念53
2.13抽象向量空间54
第3章什么是机器学习和卷积神经网络56
3.1移动端机器学习的全过程56
3.2预测过程57
3.3数学表达59
3.3.1预测过程涉及的数学公式59
3.3.2训练过程涉及的数学公式60
3.4神经元和神经网络61
3.4.1神经元61
3.4.2神经网络63
3.5卷积神经网络63
3.6图像卷积效果65
3.6.1从全局了解视觉相关的神经网络65
3.6.2卷积核和矩阵乘法的关系66
3.6.3多通道卷积核的应用69
3.7卷积后的图片效果70
3.8卷积相关的两个重要概念:padding和stride75
3.8.1让卷积核“出界”:padding75
3.8.2让卷积核“跳跃”:stride75
3.9卷积后的降维操作:池化76
3.10卷积的重要性77
第4章移动端常见网络结构78
4.1早期的卷积神经网络78
4.2AlexNet网络结构79
4.3GoogLeNet网络结构79
4.3.1模型体积问题80
4.3.2计算量问题80
4.4尝试在App中运行GoogLeNet81
4.4.1将32位float参数转化为8位int参数以降低传输量82
4.4.2将CPU版本服务器端框架移植到移动端83
4.4.3应用在产品中的效果84
4.5轻量化模型SqueezeNet85
4.5.1SqueezeNet的优化策略85
4.5.2fire模块86
4.5.3SqueezeNet的全局86
4.6轻量高性能的MobileNet88
4.6.1什么是深度可分离卷积(DepthwiseSeparableConvolution)88
4.6.2MobileNetv1网络结构89
4.6.3MobileNetv2网络结构91
4.7移动端神经网络模型的优化方向92
第5章ARMCPU组成94
5.1现代计算机与ARMCPU架构的现状94
5.1.1冯?诺依曼计算机的基本结构94
5.1.2移动计算设备的分工96
5.2简单的CPU模型98
5.2.1取指过程98
5.2.2译码过程99
5.2.3执行过程100
5.2.4回写过程101
5.2.5细化分工:流水线技术102
5.3汇编指令初探102
5.3.1汇编语言程序的第一行102
5.3.2这些指令是什么105
5.4汇编指令概况106
5.4.1ARMCPU家族106
5.4.2ARMv7-A处理器架构107
5.4.3ARMv7汇编指令介绍109
5.5ARM指令集架构111
5.6ARM手机芯片的现状与格局113
第6章存储金字塔与ARM汇编115
6.1ARMCPU的完整结构115
6.2存储设备的金字塔结构117
6.3ARM芯片的缓存设计原理119
6.3.1缓存的基本理解119
6.3.2简单的缓存映射结构:直接映射121
6.3.3灵活高效的缓存结构:组相联映射123
6.3.4利用一个简单的公式优化访存性能125
6.4ARM汇编知识126
6.4.1ARM汇编数据类型和寄存器127
6.4.2ARM指令集130
6.4.3ARM汇编的内存操作131
6.5NEON汇编指令133
6.5.1NEON寄存器与指令类型134
6.5.2NEON存储操作指令135
6.5.3NEON通用数据操作指令137
6.5.4NEON通用算术操作指令138
6.5.5NEON乘法指令139
6.5.6运用NEON指令计算矩阵乘法140
第7章移动端CPU预测性能优化142
7.1工具及体积优化142
7.1.1工具使用143
7.1.2模型体积优化148
7.1.3深度学习库文件体积优化149
7.2CPU高性能通用优化150
7.2.1编译选项优化150
7.2.2内存性能和耗电量优化151
7.2.3循环展开153
7.2.4并行优化与流水线重排154
7.3卷积性能优化方式157
7.3.1滑窗卷积和GEMM性能对比157
7.3.2基于Winograd算法进行卷积性能优化160
7.3.3快速傅里叶变换162
7.3.4卷积计算基本优化163
7.4开发问题与经验总结164
第8章移动端GPU编程及深度学习框架落地实践166
8.1异构计算编程框架OpenCL166
8.1.1开发移动端GPU应用程序167
8.1.2OpenCL中的一些概念168
8.2移动端视觉搜索研发169
8.2.1初次探索移动端AI能力170
8.2.2取消拍照按钮,提升视觉搜索体验171
8.2.3使用深度学习技术提速视觉搜索172
8.2.4通过AI工程技术提升视觉搜索体验174
8.3解决历史问题:研发Paddle-Lite框架176
8.3.1体积压缩178
8.3.2工程结构编码前重新设计178
8.3.3视觉搜索的高级形态:实时视频流式搜索184

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

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

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