一、 mnist在caffe上的学习与训练
1、参考薛开宇的学习笔记
2、由于公司未联网,所以直接下载数据库放在: /data/mnist 下面
3、运行./create_mnist.sh 生成对应的数据库
运行出错提示找不到文件,主要是路径不对,路径的表达方式:./example/mnist/create_mnist.sh
4、提示缺少什么库,一般是未将该库所在的路径添加到对应的LD_LIBRARY_PATH
打开根目录下的.profile export LD_LIBRARY_PATH=/opt/intel/mkl/lib/intel64:$ LD_LIBRARY_PATH
5、solver.prototxt是配置文件;train.prototxt是网络的实现文件;deploy.prototxt是部署的时候用的只有正向没有反向。
6、在以后全连接层的num_output是最后的分类数目;前面的num_output 是卷积核数
二、cifar10在caffe上的学习与训练
利用此例子,尝试fine-tuning,选用的模型是bvlc_alexnet
1、下载model参数
下载model放入models\bvlc_alexnet:bvlc_alexnet.caffemodel
2、准备数据
cifar10的数据下载后还是放到data\cifar10下面;运行./create_mnist.sh 生成对应的数据库
运行之后还会生成均值文件等
3、设置model,修改examples下面对应的文件
1)在examples\cifar10 目录下重新复制train_quick.sh未train_cifar_alexnet.sh;修改为:
$Tools/caffe train -solver models/bvlc_alexnet/solver_alexnet.prototxt -weights models/bvlc_alexnet/bvlc_alexnet.caffemodel -gpu 6 #其中6表示当前空闲相对空闲的GPU号,可用nvidia-smi 保存日志的方法: $Tools/caffe train -solver models/bvlc_alexnet/solver_alexnet.prototxt -weights models/bvlc_alexnet/bvlc_alexnet.caffemodel -gpu 62>&1 | tee 保存日志的地址1.1 备注:不是微调的train_quick.sh文件如下:即去了weights的参数 $Tools/caffe train -solver models/bvlc_alexnet/solver_alexnet.prototxt -gpu 6 2>&1 | tee 保存日志的地址2)修改models\bvlc_alexnet下面对应的文件复制网络结构图train_val.prototxt 命名为train_alexnet.prototxt ;
修改里面对应的路径、最后num_output的数目#class num;
复制全局参数文件solver.prototxt为solver_alexnet.prototxt
修改里面的net路径;修改snapshot_prefix路径,即最后模型生成的路径
注释掉crop_size:227,因为我们例子中下载的数据是32*32裁剪好的
3) 运行train_cifar_alexnet.sh
发现错误,观察错误原因是因为我们图片比较小,跑完全层结果度为宽、高都为0
方法是注释掉pool5,不裁剪,就不会那么小
还要改最后一层全连接层的名称fc8-1,防止重新初始化模型找不到
./build/tools/caffe train --solver=/models/bvlc_alexnet/solver.prototxt --snapshot=examples/lenet_iter_5000.solverstate