ubuntu 下caffe框架内一个训练流程小记

来源:互联网 发布:阿里云深圳节点怎么样 编辑:程序博客网 时间:2024/06/05 23:41

训练伊始:获取数据集

        所需要执行的文件是 get_<数据集名>.sh       但是该文件的执行需要在指定的文件夹下面,而非是caffe根目录。故而在执行之前需要先cd切换到指定的文件夹

例如:当你需要执行 get_mnist.sh 时首先要做:

$ cd       #直接回到home目录     $ cd caffe/data/mnist   #到caffe目录下找data文件夹然后进入mnist文件夹$ ./get_mnist.sh      #我的电脑跑CPU,不知为何不能用sh get_mnist.sh 命令来执行
得到之后需要再执行creat_mnist.sh 但是此时必须要在caffe根目录下执行而不是先进入mnist文件夹后执行

$ cd ~/caffe   #回到caffe根目录下 当前在mnist文件夹下不能用cd caffe 直接回到上层次的caffe文件夹 $ ./examples/mnist/create_mnist.sh 
执行完以上两步之后再需要更改参数文件修改为CPU做训练

因为要执行文件train_lenet.sh 可手动打开看看需要修改的.prototxt 文件有哪些

其中提到的路径为examples/mnist/lenet_solver.prototxt

故而打开lenet_solver.prototxt 进行CPU_ONLY的修改

找到文件 lenet_solver.prototxt 用gedit打开后将最后一行solver_mode:GPU 修改为  solver_mode:CPU

lenet 是模型的名称,而solver基本上存放着可调参数。其实后缀为prototxt很多都是用来修改配置的

该文件路径: caffe/example/<数据集名>

可以直接用文件管理器找到文件,也可以用终端执行命令打开

$ sudo gedit caffe/examples/mnist/lenet_solver.prototxt# 假设当前的目录为home,TIP:在当前目录下取下个文件夹时前面不能加/;也就是gedit caffe 不可写为gedit /caffe
修改完之后回到caffe目录下开始训练:

$ cd ~/caffe       #回到caffe目录下$ ./examples/mnist/train_lenet.sh 
最终训练完的模型存储:

examples/mnist/lenet_iter_10000.caffemodel

./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel


训练结束后开始测试:

$ ./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel
同理 如果是cifar10数据库

$ cd ~/caffe/data/cifar10$ ./get_cifar10.sh         #在cifar10目录下执行,未尝试过直接在caffe目录下执行$ cd ~/caffe$ ./examples/cifar10/create_cifar10.sh    #不到caffe目录下执行会报错
打开train_quick.sh

发现提到两个.prototxt 文件,故而将两个都做CPU_ONLY的修改

但是,留心发现不单单有train_quick.sh 还有train_full.sh     train_full_sigmoid.sh    train_full_sigmoid_bn.sh 等训练文件

根据自己所需要执行的训练文件来修改所涉及的.prototxt文件中的CPU_ONLY

训练模型:

$ ./examples/cifar10/train_quick.sh

测试:参考以上的测试输入命令,下面贴出网络查询到的自己定义网络所输入的命令供之后分析

python python/classify.py --model_def examples/cifar10/cifar10_quick.prototxt --pretrained_model examples/cifar10/cifar10_quick_iter_4000.caffemodel.h5 --center_only  examples/images/cat.jpg foo  
其中出现的model_def,pretrained_model,center_only ,这些参数哪些可选?哪些必选?

较之mnist的test命令

./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel
有model,weights这两个参数,已知的是GPU=0,这个是可选参数,选择零号GPU






原创粉丝点击