登录
首页大数据时代应该怎样理解深度学习Caffe?
应该怎样理解深度学习Caffe?
2020-07-13
收藏

Caffe深度学习框架中经常遇到的,那么到底Caffe是什么?我们又应该怎样理解呢?下面,小编对于Caffe做了一个简单的介绍,希望对大家有所帮助。

一、Caffe基本概念

Caffe全称为:Convolutional Architecture for Fast Feature Embedding,又叫做卷积神经网络框架。是一个同时具有表达性、速度和思维模块化的优点的,清晰、效率高的深度学习框架。而且Caffe是开源的,采用的编程语言为C++,支持命令行、Python和Matlab接口,它既支持CPU上运行,也支持在GPU上运行。

二、Caffe架构

数据存储:Caffe通过”blobs”,也就是通过4维数组的方式来进行存储和传递数据。Blobs为批量图像(或其它数据)的操作,参数或者是参数更新,提供了一个统一的内存接口。Models是以Google Protocol Buffers的方式磁盘上存储。而大型数据则在LevelDB数据库中进行存储。

层:一个Caffe层(Layer)是一个神经网络层的本质,采用一个或者多个blobs作为输入,并且产生一个或多个blobs作为输出。网络是一个整体的操作,而层的关键职责有两个:一是前向传播,需要输入并产生输出;二是反向传播,以梯度为输出,利用参数和输入计算梯度。Caffe为此提供了一套完整的层类型。

网络和运行方式:Caffe保留了所有的,有向无环层图,这就确保了正确的进行前向传播和反向传播。Caffe模型是终端到终端的机器学习系统。一个典型的网络通常是开始于数据层,而结束于loss层。通过单一的一个开关,使其网络在CPU或GPU上运行。

训练一个网络:Caffe训练一个模型(Model)依靠的是速度快、而且标准的随机梯度下降算法。

三、Caffe优势

学起来容易:Caffe模型与相应优化都是以文本形式给出的,省去了学习相关代码的麻烦。

Caffe给出了模型的定义、预训练的权重以及最优化设置,上手速度快。

运行速度快:运行最棒的模型,处理海量的数据。

Caffe通常与cuDNN结合来一起使用,用来测试AlexNet模型,在K40上只需要1.17ms就能处理一张图片

模块化:Caffe允许对新数据格式、网络层和损失函数进行扩展,方便扩展到新的设置和任务上。

开放性:开放的源码以及参考模型用于再现。

社区好:能够通过BSD-2参与开发与讨论。

数据分析咨询请扫描二维码

客服在线
立即咨询