Caffe作者贾扬清,教你如何打造优秀的深度学习架构

雷锋网按:本文作者贾扬清,拥有加州大学伯克利分校计算机科学博士学位、清华大学硕士学位和学士学位,曾于新加坡国立大学、微软亚洲研究院、NEC美国实验室、Google Brain工作,现任Facebook研究科学家,负责前沿AI平台的开发以及前沿的深度学习研究。

在伯克利期间开发了深度学习框架Caffe,在Google期间参与了ImgeNet2014比赛、TensorFlow平台的开发、基于深度学习的产品开发和产品咨询等。在AI领域有数年的研究经历。

在深度学习领域,Caffe框架是人们无法绕过的一座山。这不仅是因为它无论在结构、性能上,还是在代码质量上,都称得上一款十分出色的开源框架。更重要的是,它将深度学习的每一个细节都原原本本地展现出来,大大降低了人们学习研究和开发的难度。

这一次,大牛讲堂将Caffe框架的作者贾扬清请到了地平线,他将结合自己在Google、Facebook的工作经历以及Caffe等学习架构的开发经验,为大家分享「怎样打造更加优秀的深度学习架构」。

从Caffe的开发中了解到的用户需求

深度学习的框架总会不断改变,Caffe也会有被新框架代替的一天。但是在开发Caffe的过程中,贾扬清发现大家喜欢的框架其实有着很多相似的地方,这些闪光点拥有很长的生命周期,发现并掌握人们这些共同偏好将为以后开发新的框架积累经验。他在反复总结之后,认为Caffe之所以广受欢迎可能是因为有以下的四个特点:

1、 稳定的模型架构

Caffe通过Protobuf来定义一个网络的结构,而这个由Google开源的库具有优秀的版本兼容性。随着Caffe的框架源码的不断更新迭代,之前定义的网络结构依然能兼容解析,模型仍然能正确加载运行。

2、较好的设备抽象

合理的设备抽象能够精简代码,提高框架适用性。在这方面Caffe做了比较好的尝试,模型的训练和使用与不同的平台耦合比较低,只要平台能解析网络结构并读取二进制的模型参数,就能运行该模型。这样大大拓展了框架的应用范围,自然更加符合用户的使用需求。

3、清晰的说明教程

如何让首次接触到框架的人通过说明教程就能最快地熟悉运用,这对于一个新面世的框架来说尤为重要。以Caffe为例,用户只需要将官方文档的例子跑一遍,基本就能清楚Caffe的操作过程和细节,这给它的广泛传播提供了最坚实的基础。

4、开放的模型仓库

目前Caffe还维护了一个Model Zoo, 许多论文的作者会将模型发布到这里,其它用户可以利用这些材料轻松地将模型复现,还可以在github上参与开发讨论,从而更深入地学习实践。

 现有深度学习框架的侧重点

人们的需求多种多样,目前,还没有任何一种深度学习的框架能够满足人们所有的需求。对于工业界而言,从业者看重的是框架的稳定性强、数据量大、速度快、容易进行数据整合等。

而对于学术界来说,学者们更希望框架容易调试、灵活性要强、迭代要快。因此,比照现有深度学习框架的特点,Theano、Torch可能会更加适合学术界,而D4J等可能就要更适合工业界一些,至于Caffe、Tensor flow等为代表的框架则是介于二者之间。

 对未来机器学习框架设计的一些思考

1、使用计算图 (computation graph)

Caffe框架在实现网络的forward, backward, update时,是通过Solver, Net, Layer之间递进地逐步回调对应的forward, backward, update来实现的,在加入并行化之后,为了用计算来覆盖数据传输的时间,这些回调的运用会变得相对复杂。

因此,目前许多框架都在往computation graph的风格上偏移。这种基于computation graph的深度学习框架不仅在网络的更新方面更加直接,而且在并行方面,无论是数据并行方式还是模型并行方式,都能做到接近线性的提速。大家未来也可以在这个方向做些尝试。

2、高效方便地输入数据

对于Caffe用户而言,首要问题便是如何导入数据。尤其是在算法比较简单时,保证数据输入的高效性将成为制约模型的首要因素。之前进行的某个项目里,在8个GPU(Titan X)上训练AlexNet,需要达到每秒钟处理1600张图片(3.14GB/s)的要求。甚至对于另外一些模型而言,还需要更多的吞吐量。如果数据接口没有做好,是绝对无法达到这样的要求的。

3、更快的速度

网络结构实现需要在灵活性和速度上进行权衡,这种权衡可以体现在框架设计的粗细粒度上。例如一个Inception的结构,是做成像Caffe这样通过各个层的累积来形成,还是直接由Conv2D, BiasAdd, Relu这样的基本计算来直接构造一个Inception结构。这样不同粗细粒度的构建方法体现了整个框架对速度或是灵活性的权衡。

另外,对于底层的实现,最好用硬件供应商提供的数值计算库,比如CuDNN, MKL-DNN,Accelerate,Eigen,NNPack等。

4、 可移植性

要提升框架的实用价值,就必须提升其训练出的模型的可移植性。换句话说,也就是要让框架训练出的模型具有平台无关性,包括了系统层面(windows、linux、android、iOS、OS X等)及硬件层面(CPU、GPU、FPGA、ARM等)。这就必须使得设计出的模型更加轻量。

雷锋网(搜索“雷锋网(公众号:雷锋网)”公众号关注)注:本文由大牛讲堂授权雷锋网发布,如需转载请联系原作者,并注明作者和出处,不得删减内容。有兴趣可以关注公号地平线机器人技术,了解最新消息。

本文作者:大牛讲堂

本文转自雷锋网禁止二次转载,原文链接

时间: 2024-10-31 18:29:13

Caffe作者贾扬清,教你如何打造优秀的深度学习架构的相关文章

打造云上深度学习实验室

云栖TechDay36期,来自阿里云技术专家必嘫带来题为"打造云上深度学习实验室"的演讲.本文主要从深度学习流程开始谈起,解释了深度学习应用构建的完整生命周期,进而分享了机遇与容器服务的深度学习解决方案架构,接着讲解了端到端的深度学习体验,最后作了简要总结.以下是精彩内容整理:   深度学习流程 目前,人工智能已经进入了深度学习时代, 利用GPU加上深度学习理论,构建了一个模型,从2010年开始ImageNet所有技术都是基于传统机器视觉技术来做的,当时的识别率最好也差不多是在75%左

关于深度学习(deep learning)的常见疑问 --- 谷歌大脑科学家 Caffe缔造者 贾扬清

问答环节 问:在finetuning的时候,新问题的图像大小不同于pretraining的图像大小,只能缩放到同样的大小吗?" 答:对的:) 问:目前dl在时序序列分析中的进展如何?研究思路如何,能简单描述一下么答:这个有点长,可以看看google最近的一系列machine translation和image description的工作. 问:2个问题:1.目前Caffe主要面对CV或图像的任务,是否会考虑其它任务,比如NLP?2.如果想学习Caffe代码的话,能给一些建议吗?答:Caffe的

教机器去感受:表情符号&深度学习

雷锋网(公众号:雷锋网)按:CSDN周建丁责编,聊天机器人Dango是基于神经网络开发的,开发者已经用几百万个范例对神经网络进行训练,让程序更好地理解表情符号的意义. 最近,神经网络成为了解决一系列计算机科学难题的一种选择:Facebook使用神经网络来识别图像中的人脸,谷歌使用它们来识别图像中所有东西.苹果公司使用它们来理解你对Siri说的话,IBM则用来操作业务单元的协同作用. 这太令人印象深刻了.但对于实际问题呢?神经网络可以在你需要的时候帮你找到你需要的任何表情符号吗? 哎呀,是的.它们

TensorFlow和Caffe、MXNet、Keras等其他深度学习框架的对比

Google 近日发布了 TensorFlow 1.0 候选版,这第一个稳定版将是深度学习框架发展中的里程碑的一步.自 TensorFlow 于 2015 年底正式开源,距今已有一年多,这期间 TensorFlow 不断给人以惊喜.在这一年多时间,TensorFlow 已从初入深度学习框架大战的新星,成为了几近垄断的行业事实标准. 主流深度学习框架对比 深度学习研究的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括 TensorFlow.Caffe.Keras.CNTK.Torch7.MX

TensorFlow和Caffe、CNTK、MXNet等其他7种深度学习框架的对比

主流深度学习框架对比 深度学习研究的热潮持续高涨,各种开源深度学习框架也层出不穷,其中包括TensorFlow.Caffe8.Keras9.CNTK10.Torch711.MXNet12.Leaf13.Theano14.DeepLearning415.Lasagne16.Neon17,等等.然而TensorFlow却杀出重围,在关注度和用户数上都占据绝对优势,大有一统江湖之势.表2-1所示为各个开源框架在GitHub上的数据统计(数据统计于2017年1月3日),可以看到TensorFlow在st

重磅!Facebook 贾扬清发文,Caffe2go 将开源

[导读]Caffe作者,Facebook研究科学家贾扬清11月8日在Facebook官方网站上发文,介绍了他在Facebook 最新的机器学习研究成果--Caffe2go.这一款规模更小但训练速度更快.对计算性能要求较低的机器学习框架使得在手机上运行并训练神经网络模型成为可能.Caffe2go已经成为Facebook机器学习的核心技术.贾扬清在文章中写道:我们将会在接下来的几个月内,部分开源这一AI框架. 贾扬清:Caffe 作者,现任Facebook研究科学家,曾在Google Brain工作

为什么要做Caffe2?贾扬清亲自给出答案

在4月18日开幕的 F8 年度开发者大会上,Facebook 发布了一款全新的开源深度学习框架Caffe2.按照官网介绍,它最大的特点就是轻量.模块化和扩展性,即一次编码,到处运行(和 Java 的宣传语类似).说得更直白一点,就是 Caffe2 可以方便地为手机等移动终端设备带来 AI 加持,让 AI 从云端走向终端.(详情) 为了说明发布 Caffe2 的真正目的,贾扬清今天在知乎上对"如何评价 Caffe 2?"的问题进行了回答.下面是答案原文,雷锋网(公众号:雷锋网)作全文转载

深入Facebook机器学习部门:服务、模型、框架和硬件(贾扬清等HPCA论文)

机器学习是 Facebook 的许多重要产品和服务的核心.这篇文章描述了 Facebook 在全球范围里支持机器学习的硬件和软件基础架构.Facebook 的机器学习工作负载非常多样化:在实践中,不同的服务需要多种不同类型的模型.这种多样性对系统堆栈里的所有层都有影响.此外,在 Facebook 上存储的大部分数据都是通过机器学习流程传输的,这在向高性能分布式训练流交付数据方面提出了严峻的挑战.计算需求也很大,需要利用GPU和CPU平台进行训练,并将大量CPU容量用于实时推理.解决这些问题以及其

教你后期打造双重曝光效果!

  教你后期打造双重曝光效果!双重曝光,就是让影像重叠在一张照片上,神秘又让人难以言喻的视觉效果常常让人沉迷其中,令画面看起来更丰富~ 分类: PS图片处理 ps后期处理教程