mnist、cifar10试跑总结

一、 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 6
2>&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


你可能感兴趣的:(mnist、cifar10试跑总结)