Caffe简介

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. 官网介绍

1. Caffe

Caffe是一个以表达式、速度和模块化为核心的深度学习框架,由BLVC(Berkeley Vision and Learning Center)和社区贡献者开发。项目创建者是贾扬清。

2. Feature

  • Expressive architecture

具有表现力的结构鼓励应用和创新。模型及优化是通过配置定义的,而不是使用硬编码的方式。可以在GPU和CPU之间无缝切换,可以用GPU训练,然后部署到集群或移动设备上。

  • Extensible code

具有扩展性的代码促进了Caffe的积极发展。Caffe第一年fork超过一千次,有许多有意义的贡献和反馈。由于众多的贡献者,Caffe框架跟踪并实现了当前最新的代码和模型。

  • Speed

快速性使Caffe适合研究实验和工业开发。Caffe在单个的NVIDIA K40 GPU上每天能处理6千万张图片。识别时速度为1ms/张,训练时速度为4ms/张,BLVC相信Caffe具有最快的卷积神经网络实现。

  • Community

Caffe已经支持学术研究项目,启动原型,甚至支持大规模视觉、语音和多媒体的工业应用。

3. Document

一个介绍Caffe的PPT

实践指导和框架参考

安装,已经在Ubuntu,Red Hat,OS X上测试过了。

模型规范及已经训练的模型

API文档,通过代码中的注释生成的。

4. Demo

在ImageNet上训练和测试CaffeNet

Yann LeCun的手写字符识别,训练和测试。

CIFAR-10数据集上Caffe的训练与测试。

ImageNet上训练的CaffeNet在Flickr Style数据集上的调优。

用Caffe工具提取CaffeNet和AlexNet特征。

用底层API进行图像的简单分类

运行在Flask web服务器上的图像分类Demo

在MNIST数据集上训练和测试siamese网络。

5. NoteBook Demo

通过预先训练的模型进行图像实时识别,对神经网络的每层特征和参数进行可视化,可以了解可视化的神经网络接口。

使用Python定义、训练、测试经典的LeNet。

在新数据集上对ImageNet上训练的CaffeNet进行调优。

使用Caffe作为一般的SGD优化器在非图像的HDF5数据上训练逻辑回归。

使用Python数据层在PASCAL VOC上进行多标签分类。

怎样修改神经网络,手动改变模型参数来进行定制化使用。

在Python中使用预先训练的模型作为检测器来进行目标检测。

提取特征、绘制Siamese网络嵌入。

6. Philosophy

  • Expression

模型和优化都是通过纯文本模式定义的而不是通过代码的方式。

  • Speed

对于研究和工业而言,在最新的模型和大规模数据上具有同样的速度是关键。

  • Modularity

新任务及设置要求灵活性和可扩展性

  • Openness

科学和应用进展需要通用的代码、参考模型和再现性。

  • Community

学术研究、启动原型和工业应用通过在BSD-2项目中的联合讨论和开发实现所有共享。

7. Tour

  • Net,Lays and Blobs

Caffe模型的结构组成

  • Forward/Backward

分层结构模型的基本计算

  • Loss

通过损失函数定义要学习的任务

  • Solver

求解程序协调模型优化

  • Layer Catalogue

这一层是建模和计算的基本单元,Caffe的目录包含最新模型的层

  • Interfaces

命令行,Python,MATLAB

  • Data

怎样将模型输入变为Caffe能处理的数据

  • Caffeinated Convolution

Caffe怎样计算卷积

2. 普通介绍

1. Caffe介绍

在深度学习领域,Caffe框架是人们无法绕过的一座山。Caffe是一个用C++编写的深度学习框架,作者是UC Berkeley博士贾扬清。由于Caffe清晰、高效,因此在深度学习中被广泛使用,用户逐渐地也形成了一个开放的社区,一些重要的研究成果(主要是各种模型)被引入到了Caffe中,例如著名的AlexNet。
Caffe无论在结构、性能上,还是在代码质量上,都是一款非常出色的开源框架。它将深度学习的每一个细节都原原本本地展现出来,大大降低了人们学习、研究和开发的难度。

Caffe是纯粹的C++/CUDA架构,支持命令行、Python和MATLAB接口。Caffe的清晰性表现在网络结构与参数都独立于代码,用户只要以普通文本(但需遵循一定的简单格式)就可以定义好自己的神经网络,并按自己的需要进行调整。而高效性则体现在对CUDA的支持,GPU 运算能极大地提高图像处理的速度,同时Caffe提供了在CPU模式和GPU模式之间的无缝切换。

2. Caffe特点

  • 上手快:模型与相应优化都是以文本形式而非代码形式给出。Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。

  • 速度快:能够运行最棒的模型与海量的数据。Caffe与cuDNN结合使用,测试AlexNet模型,在K40上处理每张图片只需要1.17ms.

  • 模块化:方便扩展到新的任务和设置上。可以使用Caffe提供的各层类型来定义自己的模型。

  • 开放性:公开的代码和参考模型用于再现。

  • 社区好:可以通过开源社区和Github参与讨论和开发。

参考资料:

  1. Caffe官网

  2. http://www.zmonster.me/2015/07/21/caffe-base-usage.html

  3. http://www.cnblogs.com/zdz8207/p/DeepLearning-Caffe.html

如果有收获,可以请我喝杯咖啡!