Fork me on GitHub

Caffe神经网络框架学习笔记

要点:
  1. 卷积层(Convolutional Layer),用于提取低维到高维特征,以其名称命名的网络叫CNN(Convolutional Neural Network);
  2. 全连接层(Full Connection Layer),用于特征分类,以其名称命名的网络叫DNN(Dense Neural Network); 在caffe中 type类型为InnerProduct。
  3. 卷积层和全连接层,我们统称为权值层,因为这两种层都具有可学习参数(权值),是网络训练的对象;
  4. Sigmoid()、 Tanh()称为饱和激活函数;
  5. Relu() 称为非饱和激活函数;
Caffe数据结构:

在Caffe 中一个CNN 模型使用Net 表示,而Net 是由多个Layer 堆叠而成的。

分享一段比较形象而生动的比喻(摘自深度学习caffe21天实战):

Caffe的万丈高楼(Net)是按照我们设计的图纸(prototxt),用Blob这些砖块筑成一层层(Layer)楼房,最后通过SGD方法(Solver)进行简装修(Train ) 、精装修(Finetune )实现的。

  • Blob:

Blob 是Caffe 的基本存储单元,在内存中表示4 维数组,维度从低到高为(width_, height_ , channels , num), width和height表示图像的宽和高,channel 表示颜色通道RGB, num表示第几帧,用于存储数据或权值
C data )和权值增量(di忏),在进行网络计算时,每层的输入、输出都需要通过Blob 对象缓冲。

在使用Blob 之前,需要先包含头文件“#include<caffe/blob.hpp>”,再通过“usingnamespace caffe;”使用命名空间caffe。或者直接使用限定符::使用caffe命名空间的变量.

您的鼓励是我持之以恒的动力