1、先进入caffe文件目录,(指令:cd ./caffe),再用data/mnist下的get_mnist.sh下載MNIST数据集,代码如下:
sudo sh ./data/mnist/get_mnist.sh
2、转换格式,代码如下:
./examples/mnist/create_mnist.sh
完成后在examples/mnist生成了两个目录:mnist_test_lmdb和mnist_train_lmdb
每个目录下有两个文件:data.mdb和lock.mdb
网络结构定义在./examples/mnist/lenet_train_test.prototxt中。
训练参数配置在./examples/mnist/lenet_solver.prototxt中。
如果电脑有GPU,则不需要修改配置文件;如果没有GPU则需要修改lenet_solver.prototxt,在训练之前需要修改
./examples/mnist/lenet_solver.prototxt最后的(solver_mode: GPU)修改为:solver_mode: CPU
这样保证整个训练过程在CPU上进行。
3、训练超参数,有两种方式:
(1)通过命令行执行训练,代码如下:
cd ./caffe
./build/tools/caffe train --solver=examples/mnist/lenet_solver.prototxt
(2)将以上训练的命令行代码写成训练脚本并命名为train_lenet.sh,放到mnist目录下。运行train_lenet.sh脚本进行训练。
cd caffe
./examples/mnist/train_lenet.sh
最终训练的模型保存在caffe/examples/mnist/lenet_iter_10000.caffemodel文件中,训练状态保存在caffe/examples/mnist/lenet_iter_10000.solverstate文件中。
5、用训练好的模型对数据进行预测。
利用训练好的Lenet-5模型权值文件(examples/mnist/lenet_iter_10000.caffemodel)可以对测试数据集(或外部测试集)进行预测,代码如下:(注意caffe.bin ,prototxt ,caffemodel 等的路径一定要根据自己的写对:)
cd ./caffe
./build/tools/caffe.bin test \
-model=examples/mnist/lenet_train_test.prototxt \
-weights=examples/mnist/lenet_iter_10000.caffemodel \
-iterations=100
\表示回车,也可以不要它,直接将这四行代码写成一行代码,注意caffe.bin ,prototxt ,caffemodel 等的路径一定要根据自己的写对:
./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_5000.caffemodel -iterations=100