caffe

来源:互联网 发布:浏览广告赚钱软件 编辑:程序博客网 时间:2024/05/12 17:11

http://www.cnblogs.com/dupuleng/articles/4242906.html

一、caffe的基本组成 

一个caffe的工程主要包含两个部分:网络模型,参数配置,分别对应***.prototxt , ****_solver.prototxt文件。

网络模型:即定义你网络的每一层,下图是用caffe中 /python/draw_net.py画出的的siamese的模型,非常清晰

层包含:

DATA: 一般指输入层,包含数据路径,批处理数据大小batch_size,scale表示数据表示在[0,1],0.00390625即 1/255

CONVOLUATION:卷积层,blobs_lr:1 , blobs_lr:2分别表示weight 及bias更新时的学习率,这里权重的学习率为solver.prototxt文件中定义的学习率真,bias的学习率真是权重学习率的2倍,这样一般会得到很好的收敛速度。

num_output表示滤波的个数,kernelsize表示滤波的大小,stride表示步长,weight_filter表示滤波的类型

POOLING: 池化层

INNER_PRODUCT: 其实表示全连接,不要被名字误导

RELU:激活函数,非线性变化层 max( 0 ,x ),一般与CONVOLUTION层成对出现

SOFTMAX

参数配置文件:

***_solver.prototxt文件定义一些模型训练过程中需要到的参数,比较学习率,权重衰减系数,迭代次数,使用GPU还是CPU等等

训练出的模型被存为***.caffemodel,可供以后使用。

 

二、使用caffe训练模型包含以下几个步骤:

  1. 准备数据
  2. 重建lmdb/leveldb文件,caffe支持三种数据格式输入:images, levelda, lmdb
  3. 定义.prototxt , solver.prototxt文件
  4. 训练模型

三、caffe中比较有用且基础的接口

1、训练模型,比如使用mnist的例子

1
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt

2、观察各个阶段的运行时间可以使用

./build/tools/caffe time --model=models/bvlc_reference_caffenet/train_val.prototxt

3、使用已有模型提取特征

./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/_temp/imagenet_val.prototxt conv5 examples/_temp/features 10

conv5表示提取第五个卷积层的特征, examples/_temp/feaures表示存放结果的目录

4、对已有模型进行find-tuning,比如我们现在有一个1000类的分类模型,但目前我们的需求仅是20类,此时我们不需要重新训练一个模型,只需要将最后一层换成20类的softmax层,然后使用已有数据对原模型进行fine-tuning即可

 ./build/tools/caffe train -solver models/finetune_flickr_style/solver.prototxt -weights models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel -gpu 0

如果使用cpu模式,那么最后的-gpu省略

5、还有一个是python下面的接口,draw_net.py可以根据.prototxt文件将模式用图示的方法表示出来,博文开始的模型图即用该接口所绘

./python/draw_net.py ./examples/siamese/mnist_siamese.prototxt   ./examples/siamese/mnist_siamese.png

第一个参数为模型文件,第二个参数为所绘模型图的保存地址

 

四、运行caffe自带例子需要注意的问题

1、需要在caffe_root路径下执行所有操作,因为所有的操作都是基于该路径的,如数据的路径等

2、建议在sudo权限下执行,一般用户权限下执行时有时会报错

3、在运行程序前确定你的环境配置正确,以免在后面浪费时间,环境配置见caffe + ubuntu14.04 + cuda 6.5 无gpu配置

0 0
原创粉丝点击