Caffe 整理

1.完成Caffe 的安装和一些依赖包的解析。
a)环境:ubuntu
b)依赖包单独安装失败,使用apt-get成功

2.通过运行Mnist例子,了解caffe 调用过程,了解LeNet-5模型。
首先在运行之前,需要简单配置,由于我们采用在CPU上运行,所以修改如下:
(1)更改makefile.config中将DEBUG:=1那一行取消注释
(2)lenet_sover.prototxt # solver mode: CPU
a) 数据预处理
sh data/mnist/get_mnist.sh,得到2个mnist data文件,一个用于训练,一个用于测试
b)重建lmdb文件
sh examples/mnist/create_mnist.sh
生成mnist-train-lmdb和mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集
c)运行
./examples/mnist/train_lenet.sh

关于LeNet的模型:
LeNet的模型结构是一个卷积层接一个pooling层,然后又是一个卷积层接一个pooling层,之后是两个全连接层,所谓的全连接层就是类似传统的多层感知器的结构,不同层之间的神经元之间采用全连接的方式。各层的定义见文件:
/examples/mnist/lenet_train_test.prototxt

3.代码梳理一:caffe数据结构
Blob:是基础的数据结构,是用来保存学习到的参数以及网络传输过程中产生数据的类。
两个重要参数:data,diff
shared_ptr data_; //主要是正向传播的时候用的
(shared_ptr属于boost库的一个智能指针)
shared_ptrdiff_; //主要用来存储偏差
shared_ptr shape_data_; //用来存储Blob形状,老版本
vector< int > shape_; //新版本
int count_; //表示中的Blob元素个数
int capacity_;//当前元素个数,因为Blob可能reshape
对于批处理图像数据来说:
D(blob)=N×K×H×W
N:图像数量 K:通道数 H:图像高度 W:宽度

其中Blob作为一个最基础的类,其中构造函数开辟一个内存空间来存储数据, reshape函数在Layer中的reshape或者forward操作中来adjust dimension。
Layer:是网络的基本单元,由此派生出了各种层类。包含很多运算:convolove/pool/innerproduct/rectified-liner/sigmoid等非线性运算、元素级数据转换、normalize/load data/sofemax/hinge等losses。
其中包含三个重要操作:setup();forward();backward();

继承之后在调用的调用其相应的forward_cpu或者forward_gpu,根据输入的input data blob计算相应的output data blob,同时会反应这一层layer的total loss.

Backward():给定相对于top层输出的梯度,计算其相对于输入的梯度,并传递到bottom层,一个有参数的layer需要计算相对于各个参数的梯度值并存储在内部。

Net:是网络的搭建,将Layer所派生出层类组合成网络。
这里写图片描述
Solver:是Net的求解,通过协调Net的前向推断计算和反向梯度计算,来对参数进行更新,从而达到减少loss的目的。
给定数据集D,优化目标D中所有数均值,平均损失最小
这里写图片描述
4.Layer Cataloge
1)Vision Layer
A)Convolution
B)Pooling 方法:最大值(默认)、均值、随机
C)LRN
Local_size:1.参与求和的通道数(跨通道)沿着通道维度
2.参与求和的方形区域的边长(通道内的规范化)在特征图的二维平面内
D)imtocol:实现图像到列向量的转换。
2)loss layer
A)softmaxLoss 用于多分类的问题损失
B)EuclideanLoss
C)Hinge/MarginLoss
3)Activation/Neuron Layers
A)RELU
B)Sigmoid
C)TanH
D)Absolute Value
4)普通层
A)全连接层 Inner product
B)Splitting
The split 是一个可以讲输入的blob分裂成多个输出blob的功能层,通常在一个blob需要给多个层做输入数据时使用
C)flattening
用来将尺寸为N×C×H×W的输入blob转换成一个尺寸为N×(C×H×W)的输出。
5.Caffe主线结构:这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值