Caffe框架

什么是Caffe


Caffe是一种开源软件框架,内部提供了一套基本的模板框架,用以实现GPU并行架构下的深度卷积神经网络、Deep Learning等算法。我们可以按照框架定义各种各样的卷积神经网络的结构,并且可以在此框架下增加自己的代码,设计新的算法。该框架的一个问题就是,只能够使用卷积网络,所有框架都是再基于卷积神经网路的模型上进行的。而Tensorflow能够完成更多的深度学习算法,比如RNN、LSTM等。

caffe的基本原子结构


原子结构不能随意更改,Caffe的编程框架就是在这三个原子结构下实现的,分别是Blobs、Layers和Nets。

  • Blobs:是一个包装器,在Caffe这个流程中,所有的数据都要包装成Blob格式,在Caffe架构下进行编程和处理。Caffe本身提供了众多设计好的函数和类,不可随意更改数据包转换器,否则可能无法使用其中的函数,导致无法在Caffe框架下设计深度神经网络。Blob的格式为(Number,Channel,Height,Width),将数据B按照四元组的方式存储。这里的数据是处理的图片,所以后面的三维代表图像的数据格式,Channel代表图像的通道数,如灰度图是1通道,RGB图像是3通道,Height和Width分别是图像的长和宽。Number代表batch,由于内存有限,只能分批进行训练,这里还为每个Batch设置了一个标识号,使用SGD(随机梯度下降法)对模型训练,则需要使用到Batch。Blob不仅只用来保存深度网络进行前向过程的数据,还用来保存后向求梯度过程时的梯度数据。
    具体使用方式:
const Dtype* cpu_data() const;  //数据的固态模式
Dtype* mutable_cpu_data(); //数据的自由模式

Blob具有CPU的数据保存和GPU的数据保存,同时Blob将数据在CPU和GPU之间的交换封装起来,并做了同步处理,因此我们不需要理会GPU和CPU之间的数据交互。

  • Layers: 是组成网络结构的单位,接受下层的数据作为输入,通过内部的运算输出。Caffe中网络层的使用定义,和一般的深度学习库类似,都有三个步骤。建立层(包括建立联系关系、初始化一些变量)、前向计算过程(接受数据并计算出输出)、后向过程(进行反向梯度的计算,并把梯度保存在层结构中)。
  • Nets:由Layers组成,定义了输入输出以及网络各层。可以使用Net::Init()对定义的网络进行初始化和检查,初始化包括对一些变量权值的初始化,检查包括对网络的结构正确性检查,因为涉及到网络的上下层连接关系的匹配和耦合连接。

数据层


Caffe通过数据层获取数据,数据的来源可以是多种形式,例如:

  • LevelDB,LMDB(这两种键值对嵌入式数据库管理系统编程库,一般LMDB比LevelDB存取速度快,所以Caffe默认的是LMDB)
  • 直接从内存读取
  • HDF5文件
  • 原始图片

卷积层


卷积层定义了图像的卷积操作(即特征抽象),参数设置在prototxt中。

受限线性单元


受限线性单元实际上就是激活函数max(0,x)。

池化层


池化层定义了对对象的降维操作,参数设置prototxt中。

局部响应归一化层


LRN全称是Local Response Normalization,相关的类定义在lrn_layer.cpp中,其参数定义在prototxt中。局部响应归一化层完成一种“临近抑制”操作,对局部输入区域进行归一化。本质上是防止激活函数饱和,能提升网络的泛化能力,将错误率降低。

全连接层


参数定义在prototxt中

Dropout层


它的作用是防止过拟合和降低计算复杂度。

输出层


输出分类

感谢


https://blog.csdn.net/xiaoyang19910623/article/details/52595714
https://blog.csdn.net/songguangfan/article/details/99436777

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值