caffe小记

Caffe只能完成卷积神经网络
主要用来做计算机视觉方向
设计卷积神经网络

卷积神经网络:
卷积神经网络包括一维卷积神经网络、二维卷积神经网络以及三维卷积神经网络。

一维卷积神经网络常应用于序列类的数据处理;

二维卷积神经网络常应用于图像类文本的识别;

三维卷积神经网络主要应用于医学图像以及视频类数据识别。

使用caffe的流程:
1,准备数据
2,编写网络结构文件
3,编写网络求解文件
4,开始训练
5,使用训练的模型进行预测

两种数据格式LMDB LEVELDB:主要是帮助caffe来管理数据,可以将各种各样的数据格式转换成统一的键值对来存储,便于caffe获取并统一处理这些数据。

为什么要使用LMDB与LEVELDB:对于框架,需要处理各种各样的数据以及买你对不同的格式,还有就是方便高效,有效的提高IO效率

网络结构文件:
卷积神经网络包括卷积层,下采样层,全连接层等等,这些层的定义都是在网络结构文件中来定义的。这个网络结构命名的后缀为.prototxt,一般命名为**_train.prototxt。如果想设计的网络的话,就要学会修改设计这个文件。同时这个文件里面会指定数据源,均值文件等信息。

网络求解文件:
这个文件的命名一般为solver.prototxt,这个文件可厉害了!被称为caffe的核心,用来指定训练过程中的超参数,协调着整个模型的运作。它的主要作用是交替调用前向算法和后向算法来更新参数,从而最小化loss,其实就是一种迭代的优化算法。

Solver的流程:

1.     设计好需要优化的对象,以及用于学习的训练网络和用于评估的测试网络。(通过调用另外一个配置文件prototxt来进行)

2.     通过forward和backward迭代的进行优化来跟新参数。

3.     定期的评价测试网络。(可设定多少次训练后,进行一次测试)

4.     在优化过程中显示模型和solver的状态

在每一次的迭代过程中,solver做了这几步工作:

1、调用forward算法来计算最终的输出值,以及对应的loss

2、调用backward算法来计算每层的梯度

3、根据选用的slover方法,利用梯度进行参数更新

4、记录并保存每次迭代的学习率、快照,以及对应的状态。

{
net: “examples/mnist/lenet_train_test.prototxt”

设置深度网络模型。每一个模型就是一个net,需要在一个专门的配置文件中对net进行配置,每个net由许多的layer所组成。注意的是:文件的路径要从caffe的根目录开始,其它的所有配置都是这样。}

{
test_iter: 100
这个要与test layer中的batch_size结合起来理解。mnist数据中测试样本总数为10000,一次性执行全部数据效率很低,因此我们将测试数据分成几个批次来执行,每个批次的数量就是batch_size。假设我们设置batch_size为100,则需要迭代100次才能将10000个数据全部执行完。因此test_iter设置为100。执行完一次全部数据,称之为一个epoch

{
test_interval: 500
测试间隔。也就是每训练500次,才进行一次测试
}
Caffe工作大致流程:

让caffe可执行文件去先找到solver.prototxt文件,solver文件会找到网络结构文件,并且制定超参数。这样就会网络就开始训练起来了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值