下文用到的所有文件都可以在gihub上下载的caffe-master项目中找到;可以在文件所在目录下运行.sh文件,有时可能会有权限问题;其中修改到的路径我都用了绝对路径(比较稳,而且作为小白,别的路径使用方法还不太会);
一、建立一个cifar文件,里面分别建立data、examples、lmdb和netpro文件夹
二、获得数据--->lmdb格式的数据
在data文件夹下运行get_cifar10.sh可以得到六个batch文件和一个batches.meta.txt(我理解为label文件),还有一个readme
在lmdb文件夹中运行create_cifar10.sh文件,将数据转换成lmdb格式。需要修改create_cifar10.sh中的路径
#!/usr/bin/env sh
# This script converts the cifar data into leveldb format.
set -e
EXAMPLE=/...路径.../cifar/lmdb
DATA=/...路径.../cifar/data
DBTYPE=lmdb
echo "Creating $DBTYPE..."
rm -rf $EXAMPLE/cifar10_train_$DBTYPE $EXAMPLE/cifar10_test_$DBTYPE
/...caffe官方提供的文件路径.../cconvert_cifar_data $DATA $EXAMPLE $DBTYPE #根据个人情况修改,以找到文件为目的
echo "Computing image mean..."
/...caffe官方提供的文件路径.../compute_image_mean -backend=$DBTYPE \
$EXAMPLE/cifar10_train_$DBTYPE $EXAMPLE/mean.binaryproto
echo "Done."
结束后可以获得两个文件夹:cifar10_test_lmdb和cifar10_train_lmdb,以及mean.binaryproto(均值文件吗?反正我最后均值文件是ilsvrc_2012_mean.npy,mean.binaryproto这个我用不了)
把ilsvrc_2012_mean.npy均值文件放文件夹备用。
三、训练
在netpro文件夹中运行train_quick.sh文件,这里需要修改文件中的路径:
#!/usr/bin/env sh
set -e
TOOLS=./build/tools #这一行指向caffe中caffe.exe文件,在ubuntu下是一个紫色的菱形
$TOOLS/caffe train \
--solver=/...../cifar/netpro/cifar10_quick_solver.prototxt $@
# reduce learning rate by factor of 10 after 8 epochs
$TOOLS/caffe train \
--solver=/....../cifar/netpro/cifar10_quick_solver_lr1.prototxt \
--snapshot=/....../cifar/netpro/cifar10_quick_iter_4000.solverstate $@
执行后会得到两个名字中分别有caffemodel和solverstate的文件 (或者还有其他记不得了)
三、用训练好的模型测试(用caffe自带的classify.py文件进行分类)
python classify.py --model_def /.../cifar/netpro/cifar10_quick.prototxt --mean_file /.../cifar/lmdb/ilsvrc_2012_mean.npy --pretrained_model /.../cifar/netpro/cifar10_quick_iter_5000.caffemodel.h5 --center_only /.../cifar/examples/images/cat.jpg foo
训练及预测结束!!!
参考:https://blog.csdn.net/xueying_2017/article/details/79346783
https://www.cnblogs.com/alexcai/p/5468164.html
http://www.cnblogs.com/denny402/p/5111018.html