转自:http://www.cnblogs.com/NanShan2016/p/5469942.html

编译完caffe后,在D:\caffe\caffe-master\caffe-master\build\x64\Release 中有caffe.exe

训练篇

1 *.sh文件如何执行?

直接将后缀名改成“bat”然后双击。 但是实际上好像好需要修改。

如何载入MNIST数据并且开始训练?

   (1)首先明确我们需要设定两个重要的prototxt文件,它们分别是CAFFE_ROOT/examples/mnist下的lenet_train_test.prototxt和lenet_solver.prototxt。 

①在此给出用于训练的MNIST数据mnist-train-leveldb以及mnist-test-leveldb的路径; 用于训练和测试的数据的路径
②在此定义这个网络都有哪些层,给出每一层的定义。  网络的结构,那些层,每层的设计

3)在lenet_solver.prototxt中: 
①在此指明我们要训练的网络是lenet_train_test.prototxt,给出lenet_train_test.prototxt的路径;   上述网络运行时的参数及路径 详细见:http://blog.csdn.net/langb2014/article/details/50457774
②在此指定是用CPU还是GPU。 

开始训练:在CAFFE_ROOT/examples/mnist下找到sh文件train_lenet.sh,在里面给出: 
①caffe编译后生成的可执行文件exe的名称(带不带“.exe”都可以),后面跟“train”代表选择“训练”; caffe.exe要和train_lenet.sh在一个目录下 同时
②刚才写好的lenet_solver.prototxt的路径。   train_lenet.sh要指明网络求解路径,网络求解proto中包含数据路径
然后双击执行该脚本文件即可。

windows下脚本是.bat文件

caffe.exe train --solver=example2/lenet_solver.prototxt
pause

3、关于路径

如2中所述,在这两个prototxt和一个sh文件中,都要指明一些文件的路径。现总结如下: 
(1)lenet_train_test.prototxt中:训练集mnist-train-leveldb与测试集mnist-test-leveldb的路径; 
(2)lenet_solver.prototxt中:3-(1)的prototxt文件lenet_train_test.prototxt的路径; 
(3)train_lenet.sh中:caffe可执行文件exe名称,以及3-(2)的prototxt文件lenet_solver.prototxt的路径。

 

能够让程序跑起来的设置方法(法一)

(1)在CAFFE_ROOT/x64/Debug中,新建一个文件夹example2,使该文件夹与可执行文件Caffe.exe处于同一路径中; 
caffe 试运行MNIST
不要管examples和myexamples,这两个文件夹是师兄拷给我的时候就有了的,一个是caffe自带的,一个是师兄做的实验。总而言之与example2是独立关系。

(2)将刚才CAFFE_ROOT/examples/mnist下的mnist-test-leveldb、mnist-train-leveldb、lenet_train_test.prototxt以及lenet_solver.prototxt这四个文件全部拷贝到example2中去。 
caffe 试运行MNIST

(3)设定prototxt文件,给出相应的路径。 
①lenet_train_test.prototxt 
这个文件即之前说的lenet_train.prototxt,为了便于区分在后面加了一个_test。给出相对路径如下: 
caffe 试运行MNIST
此处给出绝对路径也是可以的。如: 
caffe 试运行MNIST
②lenet_solver.prototxt 
设置相对路径: 
caffe 试运行MNIST
这里给出绝对路径也是可以的。如: 
caffe 试运行MNIST

(4)将CAFFE_ROOT/examples/mnist下的train_lenet.sh文件拷贝到CAFFE_ROOT/x64/Debug中,使之与可执行文件Caffe.exe以及example2处于同一目录下。 
caffe 试运行MNIST
打开train_lenet.sh文件,修改内容如下: 
caffe 试运行MNIST 
修改该文件后缀名为bat,双击train_lenet.bat,则可以成功跑起来

注意:一点是LEVELDB 而不是小写的 否则训练会出错

在网络训练完毕后,将在指定路径后生成四个文件,其中两个caffemodel文件lenet_iter_5000.caffemodel与lenet_iter_10000.caffemodel为我们测试时所需要的,它们分别存放着程序迭代5000次与10000次后网络的参数。 

测试篇

将在对应的路径下生成四个文件: 
caffe 试运行MNIST

2、在CAFFE/examples/mnist目录下新建一个文本文件,然后将后缀名改成sh。填入以下语句: 
caffe 试运行MNIST
注意,这样填写只是为了便于观看,但直接保存后是不能跑起来的,必须把第2~5条语句全部放在同一行,语句与语句之间用一个空格隔开。 
caffe 试运行MNIST

3、保存该sh文件,然后双击,即可出现训练情况: 
caffe 试运行MNIST