Caffe:卷积体系结构用于快速特征嵌入外文翻译资料

 2022-11-22 11:11

英语原文共 5 页,剩余内容已隐藏,支付完成后下载完整资料


Caffe:卷积体系结构用于快速特征嵌入

Yangqing Jia_, Evan Shelhamer_, Jeff Donahue, Sergey Karayev,

Jonathan Long, Ross Girshick, Sergio Guadarrama, Trevor Darrell

UC Berkeley EECS, Berkeley, CA 94702

{jiayq,shelhamer,jdonahue,sergeyk,jonlong,rbg,sguada,trevor}@eecs.berkeley.edu

摘要

Caffe为多媒体科学家和从业者提供了一个干净而可变的框架,用于最先进的深度学习算法和一系列参考模型。该框架是一个BSD许可的C 库,通过Python和MATLAB绑定,可在商品架构上有效训练和部署通用卷积神经网络和其他深层模型。Caffe通过CUDA和GPU的计算满足行业和互联网规模的媒体需求,每天在单个K40或者Titan GPU上处理超过4000万张图像(每张图像为2.5毫秒)。通过将模型表示与实际实现分离开来,Caffe允许在平台之间进行实验和无缝切换,以便从原型机到云环境的开发和部署。Caffe由Berkeley Vision and Learning Center(BVLC)在活动的帮助下维护和开发GitHub贡献者社区。它支持正在进行的研究项目,大规模工业应用以及视觉,语音和多媒体中的启动原型。

类别和主题描述

I.5.1 [模式识别]:[应用程序{计算机视觉]; D.2.2 [软件工程]:[设计工具和技术{软件库]; I.5.1 [模式识别]:[模型{神经网络]

一般条款

算法,设计,实验

关键词

开源,计算机视觉,神经网络,并行计算,机器学习

杨庆嘉是伯克利的研究生时完成了这项工作。他目前是Google,1600 Amphitheatre Pkwy,Mountain View,CA 94043的研究科学家。

引言

多媒体数据分析中的一个关键问题是对感官输入、图像、声波、触觉等的有效表示的发现。近年来,传统深度学习的性能一直处于稳定状态,深度成分体系结构的新发展使性能水平上升[8]。深层模型在许多主干中具有超越手工设计的特征表现,并使得在缺乏完全的工程特征的领域中学习成为可能。

我们尤其受到大规模视觉识别的激励,其中特定类型的深层架构已经取得了最先进的指挥带领。这些卷积神经网络或CNN通过经过卷积滤波器层和反向和积分等其他操作的反向传播进行区分性训练。在90年代数字分类的早期成功之后,这些模型最近超过了所有已知的用于大规模的视觉识别,并已被业界巨头如Google,Facebook和百度所采用,用于图像理解和搜索。

尽管深度神经网络已经引起了计算机视觉及其他领域的热烈兴趣,但重现已公布的结果可能涉及研究人员或工程师数月的工作。有时候研究人员认为值得发布训练有素的模型以及宣传性能的论文。但是,训练好的模型本身对于快速研究进展和新兴的商业应用来说并不足够,而且很少有工具箱能够提供真正的现成模型的现成部署,而那些工具通常不具有计算效率,因此不适合商业部署。

为了解决这些问题,我们提供了Caffe,一个完全开源的框架,可以提供深层架构的明确访问。该代码是用干净,高效的C 编写的,CUDA用于GPU计算,以及几乎完整的支持Python / Numpy和MATLAB的绑定。 Caffe坚持软件工程的最佳实践,为正确性和实验严谨性以及部署速度提供单元测试。由于代码的谨慎模块化以及网络定义(通常是深度学习研究的新颖部分)与实际实施的清晰分离,它也非常适合研究用途。

表1:流行的深度学习框架比较。核心语言是主要的图书馆语言,而

绑定具有用于特征提取,培训等的支持的库界面。CPU指示

仅主机计算的可用性,不使用GPU(例如,用于集群部署); GPU指示GPU

计算能力对培训现代有线电视网络至关重要

在Caffe中,多媒体科学家和从业者拥有一个有序和可扩展的工具包,可以使用最新的深度学习算法,并提供开箱即用的参考模型。通过在单个K40或Titan GPU上实现每天超过4000万幅图像的处理速度,快速CUDA代码和GPU计算达到了行业需求。相同的模型可以在各种硬件上以CPU或GPU模式运行:Caffe将表示与实际实现分离开来,异构平台之间的无缝切换进一步推动了开发和部署使得Caffe甚至可以在云中运行。

虽然Caffe最初是为视觉设计的,但它在语音识别,机器人,神经科学和天文学方面已被用户采用和改进。我们希望看到这种趋势继续下去,以便更多的科学和工业可以利用深度学习。Caffe由BVLC在几名研究生的积极努力下进行维护和开发,并欢迎来自http://github.com/BVLC/caffe的开源贡献。我们感谢所有贡献者的贡献!

2.caffe的亮点

Caffe为训练,测试,网络调配和部署模型提供了一个完整的工具包,并为所有这些任务提供了完备的文档示例。 因此,这对研究人员和其他希望进入最先进机器学习的开发人员来说是一个理想的起点。 同时,这很可能是这些算法中最快速的实现,使其在工业部署中立即有用。

模块化

该软件从一开始就被设计为尽可能模块化,可以轻松扩展到新的数据格式,网络层和丢失功能。许多层次和损失函数已经实现,大量实例展示了如何将这些功能组合成适合各种任务的可训练识别系统。

表示和实施的分离

使用协议缓冲区语言将Caffe模型定义写为config _les。 Caffe以任意有向无环图的形式支持网络体系结构。实例化时,Caffe保留网络所需的内存,并从主机或GPU中的底层位置抽象出来。在CPU和GPU之间切换只是一个函数调用。

测试覆盖率

Caffe中的每个模块都有一个测试,没有相应的测试就没有新的代码被接收到项目中。这允许对代码库进行快速改进和重构,并为使用代码的研究人员带来欢迎的和平感。

Python和MATLAB绑定

为了快速建立原型并与现有研究代码进行交互,Caffe提供了Python和MATLAB绑定。这两种语言都可以用来构建网络并对输入进行分类。 Python绑定还揭示了解算器模块,以便于新培训程序的原型设计。

预训练参考模型。

Caffe为视觉任务提供了(用于学术和非商业用途|不是BSD许可证)参考模型,包括标志性的AlexNet“ImageNet模型[8]”以及R-CNN检测模型[3]。我们是可重复研究的强有力支持者:我们希望通用的软件基础能够促进网络架构和应用的快速搜索。

2.1与相关软件的比较

我们总结了表1中近期出版物中使用的卷积神经网络软件的情况。虽然我们的列表不完整,但我们已经包含了我们所知最为显着的工具包。Caffe在两个主要方面与其他当代CNN框架不同:

(1)该实现完全基于C ,轻松集成到现有C 系统和业界常见的接口中。一旦模型被训练,CPU模式就消除了用于部署和实验的专用硬件的障碍。

(2)提供参考模型以便快速试验最先进的结果,而不需要昂贵的重新学习。通过对相关任务进行网络化,如[2]探讨的那些,这些模型为新的研究和应用提供了热情。至关重要的是,我们不仅发布训练有素的模型,还发布配方和代码来重现它们。

3.体系结构

3.1数据存储

Caffe以称为blobs的4维数组存储和传递数据.Blobs提供了统一的存储器接口,可以存储批量的图像(或其他数据),参数或参数更新.Blobs隐藏了混合CPU / GPU操作的计算和精神开销根据需要从CPU主机同步到GPU设备。在实践中,将数据从磁盘加载到CPU代码中的blob,调用CUDA内核来执行GPU计算,并将blob o_运送到下一层,忽略低级细节,同时保持高级性能。主机和设备上的内存按需(懒散地)分配以提高内存使用率。

模型以Google协议Buffers的形式保存到磁盘上,它具有几个重要特性:序列化时最小尺寸的二进制字符串,电子序列化,与二进制版本兼容的人类可读文本格式以及多语言高效的接口实现,最显着的是C 和Python。

大规模数据存储在LevelDB数据库中。在我们的测试程序中,LevelDB和Protocol Buffers在商用机器上提供了150MB / s的吞吐量,对CPU影响最小。由于分层设计(下文讨论)和代码模块化,我们最近增加了对其他数据源的支持,其中包括一些由开源社区贡献的数据源。

图1:Caffe网络的MNIST数字分类示例,其中蓝色框表示图层和

黄色八角形表示由层产生或馈入层中的数据斑点

3.2层

Caffe层是神经网络层的本质:它将一个或多个blob作为输入,并产生一个或多个

blob作为输出。图层对于整个网络的操作有两个主要责任:一个接收输入并产生输出的正向通道,以及相对于输出接收梯度的反向通道,并计算关于参数的梯度和到输入端,这些输入端又反向传播到更早的层。Caffe提供了一套完整的图层类型,包括:卷积,合并,内积,非线性(如整形线性和逻辑运算),局部响应标准化,单元运算以及softmax和铰链等损耗。这些都是最先进的视觉任务所需的所有类型。由于网络的组成构造,对自定义图层进行编码需要最小的努力。

3.3网络和运行模式

Caffe为任何有向无环的图层图表做所有簿记,确保向前和向后通过的正确性。 Caffe模型是端到端的机器学习系统。一个典型的网络是从数据层开始的,数据层从磁盘加载并以损失层结束,计算任务的目标,如分类或重建。网络通过设置单个开关在CPU或GPU上运行。层来与相应的CPU和GPU例程产生相同的结果(用测试证明它)。 CPU / GPU切换是无缝的,与模型定义无关。

3.4培训网络

Caffe使用快速标准随机梯度下降算法训练模型。图1显示了一个Caffe网络(用于MNIST数字分类)在训练过程中的典型示例:数据层从磁盘中获取图像和标签,将其传递到多层,如卷积,合并和校正线性变换,并提供_nal预测进入一个分类丢失层,该层产生训练整个网络的损失和梯度。这个例子可以在caffe源代码的examples / lenet / lenet_train.prototxt中找到。数据按照顺序通过网络的小批量进行处理。对培训至关重要的是学习速率衰减计划,动力以及停止和恢复的快照,所有这些都已实施并记录在案。Finetuning将现有模型适用于新体系结构或数据是Caffe的标准方法。从现有网络的快照和新网络的模型定义中,Caffe为旧模型权重进行了调整新任务并根据需要初始化新权重。这种能力对于诸如知识转移等任务而言至关重要。

图2:Caffe对象分类的一个例子

演示。 在线试试吧!

4.应用和示例

在公开发布的头六个月内,Caffe已经被用于大量的研究项目中加州大学伯克利分校和其他大学,在一些任务上取得了最先进的表现。 伯克利EECS成员还与诸如Facebook [11]和Adobe [6]等多个行业合作伙伴合作,使用Caffe或其直接前体(Decaf)获得最新的成果。

对象分类

Caffe在线演示3展示了用户提供的图像的最新对象分类,包括通过手机。 该演示将拍摄图像并尝试将其归类为1,000个ImageNet类别之一4。 一个典型的分类结果如图2所示。此外,我们已经成功地训练了一个包含全部ImageNet数据集10,000个类别的模型。 得到的网络已经被应用于打开词汇表对象检索[5]。

图3:从深度网络中提取的特征,在二维空间中可视化。 注意清楚

类别之间的分离,满足嵌入。

学习语义特征

除了端到端的培训外,Caffe还可以用来使用预先训练好的网络从图像中提取语义特征。这些特征可以在其他视觉任务中用于下游,并取得很大的成功[2]。图3显示了所有ImageNet验证图像的二维嵌入,类别,他们来自。很好的分离testi_es到成功的语义嵌入。

有趣的是,这个学习功能对于对象类别来说非常有用。例如,Karayev等人有显示出使用Caffe特征找到不同风格的图像(例如 Vintage和 Romantic)的有希望的结果(图4)[6]。

图4:排名前三的最正面预处理

在Flickr Style数据集上使用Ca?e-

训练有素的分级师。

对象检测

最值得注意的是,Caffe使我们能够在最难的学术数据集上评估目标检测方面的最佳性能:PASCAL VOC 2007-2012和ImageNet 2013 Detection Detection挑战[3] Girshick等人。[3]将Caffe和Selective Search [10]等技术结合起来,有效地在自然图像中执行同时定位和识别。图5显示了他们的方法草图。

初学者指南

为了帮助用户开始安装,使用和修改Caffe,我们在Caffe网页上提供了指导和教程。本教程的范围从小型演示(MNIST数字识别)到认真部署(ImageNet上的端到端学习)。尽管这些教程是Caffe功能的有效文档,但Caffe源代码还提供详细的所有模块的内嵌文档

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[22827],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 20元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。