本篇文章2102字,读完约5分钟

根据雷锋的说法,作者贾拥有加州大学伯克利分校的计算机科学博士学位、清华大学硕士学位和学士学位。他曾在新加坡国立大学、微软亚洲研究院、nec美国实验室和谷歌大脑工作。他目前是facebook的研究科学家,负责开发尖端的人工智能平台和尖端的深度学习研究。

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

在伯克利期间开发了深度学习框架caffe,在google期间参与了imgenet2014比赛、tensorflow平台的开发、基于深度学习的产品开发和产品咨询等。在ai领域有数年的研究经历。Caffe是一个深度学习框架,在Berkeley期间开发,并在google期间参与了imgenet2014竞赛、tensorflow平台开发、产品开发和基于深度学习的产品咨询。他在人工智能领域有几年的研究经验。

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

在深度学习领域,caffe框架是一座人们无法绕开的大山。这不仅是因为就结构、性能和代码质量而言,它是一个优秀的开源框架。更重要的是,它展示了深度学习的每一个细节,大大降低了人们学习、研究和开发的难度。

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

这一次,讲堂邀请了《咖啡框架》的作者贾·到地平线上来。他将根据自己在谷歌和facebook的工作经验以及caffe等学习框架的开发经验,与大家分享“如何构建更好的深度学习框架”。

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

从caffe的发展来看,我们知道用户需求深度学习的框架总是会改变的,总有一天caffe会被一个新的框架所取代。然而,在发展咖啡馆的过程中,贾发现大家喜欢的框架有很多相似之处。这些亮点有很长的生命周期。发现和掌握人们的共同偏好将为将来开发新的框架积累经验。经过反复总结,他认为咖啡馆之所以受欢迎是因为它有以下四个特点:

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

1.稳定的模型架构

Caffe通过protobuf定义了网络的结构,这个来自谷歌的开源库具有出色的版本兼容性。随着caffe框架源代码的不断更新和迭代,先前定义的网络结构仍然与解析兼容,并且模型仍然可以正确加载和运行。

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

2.更好的设备抽象

合理的设备抽象可以简化代码,提高框架的适用性。Caffe在这方面做了很好的尝试。该模型的培训和使用与不同平台的耦合较少。只要平台能够分析网络结构并读取二进制模型参数,就可以运行模型。这大大扩展了框架的应用范围,自然满足了用户的需求。

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

3.清楚地解释教程

对于一个新的框架来说,如何通过解释教程来让第一次接触框架的人尽快熟悉应用程序是特别重要的。以caffe为例,用户只需浏览一下官方文件的例子,就可以基本了解caffe的运行过程和细节,为其广泛传播提供了最坚实的基础。

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

4.开放式模型仓库

目前,caffe还维持着一个模型动物园,许多作者在那里发布模型。其他用户可以通过使用这些材料轻松地复制模型,并在github上参与开发讨论,以便更深入地学习和实践。

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

现有的深度学习框架关注不同人的需求。目前,没有一个深入的学习框架能够满足所有人的需求。对于行业来说,从业者看重框架的稳定性、数据量大、速度快、数据集成容易等。

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

对于学术界来说,学者们希望该框架易于调试、灵活和迭代。因此,与现有深度学习框架的特点相比,an ano和torch可能更适合学术界,而d4j可能更适合工业界,以caffe和张量流为代表的框架介于二者之间。

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

对未来机器学习框架设计的一些思考。使用计算图表

Caffe框架是通过逐步调用求解器、网、层之间相应的前向、后向、更新来实现的。在并行化之后,为了用计算来覆盖数据传输时间,这些回调的应用将变得相对复杂。

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

因此,目前许多框架都偏离了计算图的风格。无论是数据并行还是模型并行,这种基于计算图的深度学习框架不仅在网络更新方面更加直接,而且在并行加速方面也接近线性。将来你也可以朝这个方向努力。

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

2.高效便捷地输入数据

对于caffe用户来说,第一个问题是如何导入数据。特别是当算法简单时,保证数据输入的高效率将成为制约模型的主要因素。在之前的一个项目中,在8 gpu(titan x)上训练alexnet需要每秒处理1600张图片(3.14gb/s)。即使对于其他型号,也需要更大的吞吐量。如果数据接口做得不好,绝对不可能满足这样的要求。

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

3.更快的速度

网络结构的实现需要平衡灵活性和速度,这可以在框架设计的粒度上体现出来。例如,初始结构是否由caffe等层的堆积形成,或者初始结构是否由conv2d、biasadd、relu等基本计算直接构建。这种不同粒度的构造方法反映了整个框架的速度和灵活性之间的权衡。

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

此外,对于底层实现,最好使用硬件供应商提供的数值计算库,如cudnn、mkl-DNN、accelerate、eigen、nnpack等。

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

4.轻便

为了提高框架的实用价值,有必要提高它所训练的模型的可移植性。换句话说,由框架训练的模型应该是平台独立的,包括系统级的(windows、linux、android、ios、os x等)。)和硬件级(cpu、gpu、fpga、arm等。)。这必须使设计的模型更轻。

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

雷锋。搜索“雷锋”。搜索“雷锋”。注:本文由雷锋发表。如需转载,请联系原作者,注明作者和来源,不要删除内容。如果你感兴趣,你可以关注公共地平线机器人技术,并获得最新消息。

来源:罗盘报中文网

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

地址:http://www.lzn4.com/lpbxw/12469.html