caffe学习笔记---1caffe的文件夹和运行的文件及命令

来源:互联网 发布:淘宝口红店铺推荐知乎 编辑:程序博客网 时间:2024/05/18 13:25

caffe学习笔记---1caffe的文件夹和运行的文件:


文件夹

build //所有编译好的文件存放位置

analysis //存放分析数据

examples //存放各种demo的文件夹,相关应用可以参考或者直接使用对应的demo和配置。 

models //model文件的路径,一些训练好的model,需要更多的模型可参考model zoo:http://caffe.berkeleyvision.org/model_zoo.html

data //数据文件夹 

matlab //matlab接口

Python//python接口

tools //一些工具

include //存放编译需要的头文件

src //所有源代码存放位置

scripts //存放脚本文件

docs //教程和说明文件夹

Docker   //开源应用容器引擎

distribute   //make distribute编译生成可发布的安装包,用来交付给第三方使用

配置
Makefile.config //caffe编译前的配置(一般的cffe配置都在这个里配置)

--------------------------------------------------------------

文件

1.
.prototxt //模型描述文件,包含数据层,用于训练
ex:
xxx_caffenet_train_val.prototxt //模型描述文件,包含数据层,用于训练、模型训练配置,为有名字的模型描述文件,是solver中net属性的定义名,测试不需要


2.
.caffemodel //权值模型文件,是已经训练好的参数包,用于微调或者测试
ex:
xxx_caffenet.caffemodel

3.
deploy.prototxt //模型描述文件,不包含数据层,用于测试
ex:
xxx_caffenet_deploy.caffemodel

4.
log.txt //输出训练or测试日志,每一步显示的

命令

在使用cmdcaffe时,需要默认切换到Caffe_Root文件夹下,因为caffe默认都需要从根目录下面执行文件。(但运行的文件的存在路径要写好)

1、训练模型,以mnist为例子(solver.prototxt)
./build/tools/caffe train -solver=examples/mnist/lenet_solver.prototxt
      从中断点的 snapshot 继续训练(solver.prototxt + .solverstate)
./build/tools/caffe train -solver examples/mnist/lenet_solver.prototxt -snapshot examples/mnist/lenet_iter_5000.solverstate

2、观察各个阶段的运行时间可以使用(train_test.prototxt)
./build/tools/caffe time -model examples/mnist/lenet_train_test.prototxt -iterations 10

3、使用已有模型提取特征(caffemodel + train_val.prototxt + fc7 + num_mini_batches)
./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/feature_extraction/train_val.prototxt fc7 examples/temp_features 10 lmdb

  1) fc7表示提取全连接第七层特征,conv5表示提取第五个卷积层的特征, examples/temp_features表示存放结果的目录(目录不需要提前构建)

  2.)10:输入的包的数量,我们test时的batchsize是50,这里输入10,表示会提取50*10=500张图片的特征

  3.)imageNet网络有很多层(data conv1 conv2 conv3 conv4 conv5 fc6 fc7 fc8 prob),我们可以选取任意一层;fc7是最后一层特征,fc8输出的就是softmax的输出了,所以提取fc7层

  4.)lmdb:输出的数据格式是lmdb,还可以是leveldb

-------------------------------------------------------------------------------------------------------

Test测试(用cmdcaffe命令行)(train_test.prototxt + caffemodel)
caffe test 命令通过在 test phase 中运行模型得到分数,并且用这分数表示网络输出的最终结果。网络结构必须被适当定义,生成accuracy或loss作为其结果。测试过程中,终端会显示每个 batch的得分,最后输出全部 batch 得分的平均值。
# 对于网络结构文件 lenet_train_test.prototxt所定义的网络
# 用 validation set 得到已训练的 image_test 模型的分数
./build/tools/caffe test -model examples/image_test/train_val.prototxt -weights examples/image_test/caffenet_train/caffenet_train_iter_10000.caffemodel

Test分类单个输入图像

   利用训练好的模型,预测结果,5个输入参数(train_val.prototxt + caffemodel + mean.binaryproto + synset_words.txt + cat.jpg)
   test指定图像,输出结果
   sudo ./build/examples/cpp_classification/classification.bin \
   models/bvlc_reference_caffenet/deploy.prototxt \     
   models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel \
   data/ilsvrc12/imagenet_mean.binaryproto \
   data/ilsvrc12/synset_words.txt \
   examples/images/cat.jpg

本文由http://blog.csdn.net/yiliang_/article/details/60464968处补充改编。

0 0
原创粉丝点击