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

√ 本书内容来自作者长期学习研究及在阿里一线相关工作经历。

√ Caffe是应用广的深度学习框架,非常适于用来练手和入门。

√ 本书侧重解决实际问题及理解深度学习理论,实例、习题丰富。

√ 既狠抓基功又紧扣产业,既详述工具、模型又深入分析源码。

展开
作者简介

卜居,真名赵永科,CSDN 博主,现就职于阿里云计算有限公司,从事计算机体系结构、高性能计算系统设计。对计算机视觉、深度学习具有浓厚兴趣。擅长 CPU/GPU/FPGA 的算法加速与性能优化。

展开
内容介绍

《深度学习:21天实战Caffe》是一本深度学习入门读物。以目前已经大量用于线上系统的深度学习框架Caffe为例,由浅入深,从 Caffe 的配置、部署、使用开始学习,通过阅读 Caffe 源码理解其精髓,加强对深度学习理论的理解,最终达到熟练运用 Caffe 解决实际问题的目的。和国外机器学习、深度学习大部头著作相比,《深度学习:21天实战Caffe》偏重动手实践,将难以捉摸的枯燥理论用浅显易懂的形式表达,透过代码揭开其神秘面纱,更多地贴近实际应用。

展开
精彩书评

深度学习是当今人工智能领域zui炙手可热的技术,Caffe又是深度学习众多开源框架中很杰出的一款。永科撰写的这本著作,倾注了很多心血——既有深度学习理论知识的讲解,又有Caffe源代码的剖析,还包括解决实际问题的案例;内容翔实、思考全面、深入浅出,每章末尾还附有练习题和参考资料,是大家了解深度学习知识、实践人工智能应用的一本优秀指南。

——陈运文 博士 达观数据董事长&CEO

 

赵永科的文章和他本人的工作态度一样诚恳。本书不仅收纳深度学习的优秀心法与zui新产业进展,还手把手带领读者实践工具设置与模型搭建,并深入浅出地剖析Caffe源代码和实現方法,可说是内外兼修,绝对是诚意十足的大作!

——简士伟 英特尔(数据中心工程事业群)平台方案架构师

 

本书带领您深入浅出地穿越深度学习模型,揭开它神秘的面纱;通俗易懂,实践性强,用实例引导读者从基本原理到代码实现再到应用场景,涵盖了深度学习的热门技术,是目前市面上为数不多的深度学习源码解析类参考资料,也是一本可以让你快速掌握深度学习精髓的好书!

——刘莹 中国科学院大学教授|博导,CUDA教学中心主持人|CUDA研究中心主持人

 

本书对深度学习的历史做了简单梳理,对深度学习常用开源库做了非常全面的介绍,尤其对Caffe做了非常深入的剖析,是一本既探究caffe代码细节,又介绍深度学习可视化与比赛的书籍,是一本非常实用的深度学习入门及工具书籍,相信该书会对国内深度学习应用的普及产生至关重要的影响。

——孙佰贵 阿里巴巴资深算法工程师

 

这本书是国内领先在代码级别上全面剖析Caffe框架的指导书,同时也是一本真正的实战手册。

——辛淼 Caffe中国用户社区(CaffeCN)创始人

 

深度学习毫无疑问是当今IT行业zui火热的词汇之一。作为NVIDIA负责高性能计算团队的负责人,我看到越来越多的公司在深度学习领域做着大量的投入。深度学习让我们有了更高的图像识别率,更准确的语音识别工具,有了alphaGo。而许多有志于在深度学习领域一展拳脚的研发人员,却苦于没有一本浅显易懂的的深度学习入门书籍,来引领他们开始使用深度神经网络这一强大的工具。本书以应用广泛的Caffe为切入点,深入地介绍了Caffe的使用及一些应用实例,可以让读者对深度学习应用的开发过程有一个非常直观的理解。好比学习一门新的编程语言zui有效的手段就是编写几个例子程序一样,本书正可以作为深度学习研发人员的《21 天学通》手边书。

——赖俊杰,英伟达 高性能计算团队 技术经理

 

有两次标志性的事件让深度学习进入了大众视野。其中一件是谷歌大脑学会了“猫脸识别”,另外一件就是AlphaGo战胜了李世石。尤其是后者,借助李世石本身在围棋界巨大的影响力,深度学习彻底被大众所认知。人们惊呼,人工智能的时代要来临了吗?我本人认为,是的。伴随摩尔定律下计算机运算能力的大幅提升,人工智能在越来越多的领域找到了有价值的落脚点。这一代的机器学习工作者无疑是非常幸运的,一个注定伟大的时代等待着大家去探索。很高兴看到国内这么快就出现了这样一本深度学习的原创书籍,而更加难能可贵的是,本书内容还是来自于作者在阿里云进行深度学习一线工作的实战总结,相信此书可以帮助大家更好地进入这个日新月异的领域。

——谷文栋 推荐技术社区ReSysChina发起人

 

本书非常详细从深度学习的来龙去脉到caffe框架进行详细的讲解,并难能可贵的引入了底层算法(zui优化,深度网络前向传播,深度网络反向传播)介绍,为进一步深度奠定基础,是一本非常适合初学者的深度学习书籍。

——涂鸦科技技术总监柯都敏、涂鸦科技图像算法专家孙农海??????????

展开
精彩书摘

推荐序一 

近年来,几乎整个智能学科的研究者们都注意到一个技术名词——深度学习(Deep Learning)。这个略带神秘色彩的名字和其代表的前沿性技术被著名的《MIT技术评论》评选为2013年世界10大突破性技术之首。而在此之前,包括Google、Microsoft、Facebook等公司在内的诸多信息科技巨头都已争相在此技术上投入了前所未有的重视力度和战略资源,继而高调宣布布局智能应用领域。学术界和工业界不遗余力地抢占相关研究和技术的制高点,人们并没有感到奇怪,因为所有人都明白:这也许是人类在探索人工智能的伟大旅程和漫漫征途上的重要一刻。

关于人工神经网络的研究可以追溯到20世纪40年代。在其漫长的历史上经历了数次戏剧性的波折。然而近年来,随着大量数据的获得、先进理论的发现,以及高性能并行计算技术的发展,以深度神经网络为载体的特征学习技术相继在语音、视觉、语言等诸多研究领域中取得了突破性的成果,并且正以不可阻挡之势“入侵”传统技术占领的各个领域。

随着深度学习技术在学术界和工业界得到广泛认可,越来越多的人开始参与到深度学习的相关研究和实践中来。然而,由于存在一定的技术门槛,快速入手深度学习的研究并不是一件容易的事情。其中的一个重要原因是,深度学习中的许多问题非常依赖于实践。然而长期以来,学术界和工业界缺少一款专门为深度学习而设计的,兼具性能、灵活性和扩展性等诸多优势于一身的开源框架。这使得无论是快速实现算法,还是复现他人的结论,都存在着实践上的困难。研究人员和工程师们迫切需要一套通用而高效的深度学习开源框架。

2013年,一款叫作“Caffe”的深度学习框架由加州大学伯克利分校的@贾扬清博士在Github上发布。发布伊始,Caffe框架就得到了广泛的关注。Caffe框架以“层”为单位对深度神经网络的结构进行了高度的抽象,通过一些精巧的设计显著优化了执行效率,并且在保持高效实现的基础上不失灵活性。无论在结构、性能上,还是代码质量上,Caffe都是一款十分出色的开源框架。更重要的是,它将深度学习的每一个细节都原原本本地展现出来,供人们学习和实践。可以说,Caffe框架的发布极大地降低了深度学习研究和开发的难度。

正是由于上述的诸多优势,Caffe框架迅速流行起来,并且逐步形成了强大的用户社区。经过两年多的版本迭代,Caffe框架已经在学术界和工业界得到了广泛的认可。在学术界,目前每天都有以Caffe框架作为底层实现的研究成果发布;而在工业界,已经有许多产品使用Caffe作为其深度学习算法实现的内核。从学术界到工业界,大家可以共享同一套底层代码,基于同一套平台进行研究、交流和生产,这是一件令人愉悦的事情。可以说,Caffe开源项目对于促进整个深度学习研究领域的快速发展具有不可磨灭的贡献。

对于刚刚接触深度学习的朋友们来说,通过结合Caffe的代码来加深对理论的理解,也许是一种事半功倍的方法。Caffe框架天然的清晰层次和良好的代码可读性,为入手深度学习的朋友们提供了教科书般的实践指导。然而,由于Caffe中有大量技术细节是在论文中无法找到的,想要快速理解Caffe框架内部的种种精要往往需要费一番周折。幸好,有一些先行者为大家分享了相关的知识。

几天前,我有幸接到好友@卜居的邀请,为他的《深度学习:21天实战Caffe》新书做序。这本书是国内第一本在代码级别上全面剖析Caffe框架的指导书,同时也是一本真正的实战手册。本书涉及深度学习的基本理论、Caffe的设计思想、Caffe中各模块的具体实现,以及各种实例等内容。书中对Caffe框架的分析非常细致,涵盖的内容也颇为丰富,可以说是一本入手Caffe实践的技术手册,因此特别适合于Caffe的初学者阅读。相信本书可以帮助朋友们少走许多弯路。有关Caffe的诸多奥秘,@卜居将会在书中为您一一呈现。

感谢创立和推动深度学习研究的科学家们,感谢Caffe框架的作者贾扬清博士,感谢本书的作者@卜居,以及所有为深度学习技术的发展而奋斗的朋友们。我们的征途是星辰与大海,让我们一起努力,向着实现人工智能的伟大目标前进!

辛淼

北京航空航天大学博士生

Caffe中国用户社区(caffecn.cn)创始人

推荐序二

在各色缤纷的科技创新报道中,人工智能(AI)成果引发的社会性冲击无疑前所未有。一些科技术语如“深度学习”,对信息技术类学生而言变得不再陌生。虽然国际科技界对相关领域的研究已有数十年的历史,而跳跃式进步还只是最近若干年的事。正是这个原因,关于机器智能和“深度学习”的学习类书籍大多偏重理论,或散见于外刊上发表的研究论文、各个研究发展机构的研究报告、开源资料等,鲜有从工程实践出发系统地介绍深度学习的书籍。

国外研究机构设置的开源社区的繁荣发展,从工程实现方面补充了理论研究的不足。然而,对开源代码的阅读、理解、应用对于非机器学习专业人士有较大的挑战性。阿里云计算有限公司的赵永科工程师(博客昵称:卜居)在研发实践的基础上,对深度学习从基础理论到编程实践进行了系统的整理,形成了《深度学习:21天实战Caffe》一书。这是一个有技术深度、处于国际技术竞争中的领域;而本书是一个研发亲历者对技术深入理解后的总结,十分难得。

本书的写作风格是引导性的,围绕深度学习基础,通过代码导读方式,循序渐进,揭开了深度学习的神秘面纱,让深度学习技术,包括理论和工程实现,贴近所有 AI 爱好者。相信本书的出版能够激发更多研究者的兴趣,推动AI技术在中国的发展和应用。

邹谋炎

中国科学院大学教授,研究员,洪堡学者

 

推荐序三

让机器具有人类的智能是科学家们从计算机诞生开始就一直在努力的方向,但是由于选择了基于规则的算法,效果一直得不到大的提升,论文中经常以效果比乱猜好作为结论。卷积神经网络的发明者Geoffrey Hinton在20世纪70年代就已经提出了今天的深度学习理论,但是限于当时的计算能力,一直不被人重视。21世纪以来,随着NVIDIA GPU的广泛应用,人工神经网络发挥了它应有的价值,成为今天人工智能的代表性成就,Hinton也被尊称为鼻祖。

当GPU在深度学习领域大范围使用时,研究人员遇到了一个重大的问题——要写大量的复杂的神经网络代码,这带来了巨大的困难。在这个历史性的关键时刻,贾扬清同学开发的Caffe适时地出现了,Caffe让只要会C++编程的人员就可以编写深度学习代码,一下子就降低了深度学习的门槛。随后Caffe得到了广泛使用,并且获得了社区的广泛支持,也得到了NVIDIA的大力支持,获得了充足的发展,几乎可以说不知道Caffe就不能说会深度学习。

Caffe把深度学习的门槛降低了很多,但是实际上依旧需要了解大量的代码细节才能对其进行修改,而深度学习又是一个计算密集的应用,如何写出高效的代码也非常重要。卜居做过许多有关Caffe的工作,包括优化卷积算法,非常了解Caffe框架的各个细节,他编写的《深度学习:21天实战Caffe》一书非常详细、专业。

卜居用人类的恋爱过程来比喻深度学习的学习过程,从初识、热恋到升华,很让人称道。在初识阶段,从深度学习的概念、历史开始,介绍深度学习和基本理论与传统机器学习算法的不同,也包含了业界对深度学习的反思。在热恋阶段,在具体实操方面,从Caffe的安装开始介绍,到具体运行minst数据集;从Caffe的目录结构、不同层(功能)和数据抽象的实现细节,到如何求解一个深度学习模型,卜居都一一精确地解读。在升华阶段,卜居详细地解说了Caffe支持的NVIDIA GPU加速工具CUDA和cuDNN,然后介绍了Caffe可视化方法,以及如何在生产环境中部署训练好的Caffe模型。

本书虽然以21天起名,但是其真实内容是需要读者每天24小时学习才能够完全掌握的,相信读者会一天24小时手不释卷。

我郑重地向大家推荐此书。

风辰

并行计算领域专家,深度学习平台架构师

展开
目录

上篇  初见

第1天  什么是深度学习  2

1.1  星星之火,可以燎原  3

1.2  师夷长技  4

1.2.1  谷歌与微软  4

1.2.2  Facebook、亚马逊与NVIDIA  5

1.3  中国崛起  6

1.3.1  BAT在路上  6

1.3.2  星光闪耀  7

1.3.3  企业热是风向标  8

1.4  练习题  9

第2天  深度学习的过往  10

2.1  传统机器学习的局限性  10

2.2  从表示学习到深度学习  11

2.3  监督学习  12

2.4  反向传播算法  13

2.5  卷积神经网络  15

2.6  深度学习反思  17

2.7  练习题  18

2.8  参考资料  18

第3天  深度学习工具汇总  19

3.1  Caffe  19

3.2  Torch & OverFeat  20

3.3  MxNet  22

3.4  TensorFlow  22

3.5  Theano  24

3.6  CNTK  24

3.7  练习题  25

3.8  参考资料  26

第4天  准备Caffe环境  27

4.1  Mac OS环境准备  27

4.2  Ubuntu环境准备  28

4.3  RHEL/Fedora/CentOS环境准备  29

4.4  Windows环境准备  29

4.5  常见问题  32

4.6  练习题  32

4.7  参考资料  33

第5天  Caffe依赖包解析  34

5.1  ProtoBuffer  34

5.2  Boost  38

5.3  GFLAGS  38

5.4  GLOG  39

5.5  BLAS  40

5.6  HDF5  41

5.7  OpenCV  42

5.8  LMDB和LEVELDB  42

5.9  Snappy  43

5.10  小结  43

5.11  练习题  49

5.12  参考资料  49

第6天  运行手写体数字识别例程  50

6.1  MNIST数据集  50

6.1.1  下载MNIST数据集  50

6.1.2  MNIST数据格式描述  51

6.1.3  转换格式  53

6.2  LeNet-5模型  60

6.2.1  LeNet-5模型描述  60

6.2.2  训练超参数  65

6.2.3  训练日志  66

6.2.4  用训练好的模型对数据进行预测  76

6.2.5  Windows下训练模型  76

6.3  回顾  78

6.4  练习题  79

6.5  参考资料  79

篇尾语  80

中篇  热恋

第7天  Caffe代码梳理  82

7.1  Caffe目录结构  82

7.2  如何有效阅读Caffe源码  84

7.3  Caffe支持哪些深度学习特性  86

7.3.1  卷积层  86

7.3.2  全连接层  89

7.3.3  激活函数  91

7.4  小结  99

7.5  练习题  99

7.6  参考资料  100

第8天  Caffe数据结构  101

8.1  Blob  101

8.1.1  Blob基本用法  102

8.1.2  数据结构描述  108

8.1.3  Blob是怎样炼成的  109

8.2  Layer  125

8.2.1  数据结构描述  126

8.2.2  Layer是怎样建成的  127

8.3  Net  136

8.3.1  Net基本用法  136

8.3.2  数据结构描述  139

8.3.3  Net是怎样绘成的  139

8.4  机制和策略  146

8.5  练习题  147

8.6  参考资料  148

第9天  Caffe I/O模块  149

9.1  数据读取层  149

9.1.1  数据结构描述  149

9.1.2  数据读取层实现  150

9.2  数据变换器  155

9.2.1  数据结构描述  155

9.2.2  数据变换器的实现  156

9.3  练习题  171

第10天  Caffe模型  172

10.1  prototxt表示  173

10.2  内存中的表示  176

10.3  磁盘上的表示  176

10.4  Caffe Model Zoo  178

10.5  练习题  180

10.6  参考资料  180

第11天  Caffe前向传播计算  181

11.1  前向传播的特点  181

11.2  前向传播的实现  182

11.2.1  DAG构造过程  182

11.2.2  Net Forward实现  190

11.3  练习题  192

第12天  Caffe反向传播计算  193

12.1  反向传播的特点  193

12.2  损失函数  193

12.2.1  算法描述  194

12.2.2  参数描述  195

12.2.3  源码分析  195

12.3  反向传播的实现  203

12.4  练习题  205

第13天  Caffe最优化求解过程  207

13.1  求解器是什么  207

13.2  求解器是如何实现的  208

13.2.1  算法描述  208

13.2.2  数据结构描述  210

13.2.3  CNN训练过程  218

13.2.4  CNN预测过程  225

13.2.5  Solver的快照和恢复功能  227

13.3  练习题  230

第14天  Caffe实用工具  231

14.1  训练和预测  231

14.2  特征提取  241

14.3  转换图像格式  247

14.4  计算图像均值  254

14.5  自己编写工具  257

14.6  练习题  257

篇尾语  258

下篇  升华

第15天  Caffe计算加速  260

15.1  Caffe计时功能  260

15.2  Caffe GPU加速模式  262

15.2.1  GPU是什么  262

15.2.2  CUDA是什么  263

15.2.3  GPU、CUDA和深度学习  263

15.2.4  Caffe GPU环境准备  264

15.2.5  切换到Caffe GPU加速模式  268

15.3  Caffe cuDNN加速模式  269

15.3.1  获取cuDNN  270

15.3.2  切换到Caffe cuDNN加速模式  270

15.3.3  Caffe不同硬件配置性能  272

15.4  练习题  273

15.5  参考资料  273

第16天  Caffe可视化方法  275

16.1  数据可视化  275

16.1.1  MNIST数据可视化  275

16.1.2  CIFAR10数据可视化  277

16.1.3  ImageNet数据可视化  278

16.2  模型可视化  279

16.2.1  网络结构可视化  279

16.2.2  网络权值可视化  281

16.3  特征图可视化  288

16.4  学习曲线  295

16.5  小结  298

16.6  练习题  298

16.7  参考资料  299

第17天  Caffe迁移和部署  300

17.1  从开发测试到生产部署  300

17.2  使用Docker  302

17.2.1  Docker基本概念  302

17.2.2  Docker安装  303

17.2.3  Docker入门  305

17.2.4  Docker使用进阶  312

17.3  练习题  317

17.4  参考资料  317

第18天  关于ILSVRC不得不说的一些事儿  318

18.1  ImageNet数据集  318

18.2  ILSVRC比赛项目  319

18.2.1  图像分类(CLS)  320

18.2.2  目标定位(LOC)  320

18.2.3  目标检测(DET)  321

18.2.4  视频目标检测(VID)  322

18.2.5  场景分类  322

18.3  Caffe ILSVRC实践  323

18.4  练习题  326

18.5  参考资料  326

第19天  放之四海而皆准  327

19.1  图像分类  327

19.1.1  问题描述  327

19.1.2  应用案例——商品分类  330

19.2  图像中的字符识别  332

19.2.1  问题描述  332

19.2.2  应用案例——身份证实名认证  333

19.3  目标检测  337

19.3.1  问题描述  337

19.3.2  最佳实践——运行R-CNN例程  337

19.4  人脸识别  340

19.4.1  问题描述  340

19.4.2  最佳实践——使用Face++ SDK实现人脸检测  342

19.5  自然语言处理  343

19.5.1  问题描述  343

19.5.2  最佳实践——NLP-Caffe  344

19.6  艺术风格  350

19.6.1  问题描述  350

19.6.2  最佳实践——style-transfer  352

19.7  小结  354

19.8  练习题  354

19.9  参考资料  355

第20天  继往开来的领路人  356

20.1  Caffe Traps and Pitfalls  356

20.1.1  不支持任意数据类型  356

20.1.2  不够灵活的高级接口  357

20.1.3  繁杂的依赖包  357

20.1.4  堪忧的卷积层实现  357

20.1.5  架构之殇  358

20.1.6  应用场景局限性  358

20.2  最佳实践——Caffe2  359

20.3  练习题  361

20.4  参考资料  362

第21天  新生  363

21.1  三人行,必有我师  363

21.2  路漫漫其修远兮,吾将上下而求索  364

篇尾语  366

结束语  367

附录A  其他深度学习工具

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

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

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