Caffe自带的两个DEMO
caffe源码包提供了多个DEMO,这里介绍mnits和cifar10的实验
1. mnits
安装好caffe后,在caffe-master/examples/mnist目录下可以找到LeNet模型的具体实现
数据下载:
./data/mnist/get_mnist.sh
在./data/mnist/目录下下载了4个*.gz格式的数据压缩包,train-*是训练数据,t10k-*是测试数据,下载后会利用gunzip命令解压缩[其中源文件会默认被移除]
train-labels-idx1-ubyte.gz => train-labels-idx1-ubyte train-images-idx3-ubyte.gz => train-images-idx3-ubyte t10k-labels-idx1-ubyte.gz => t10k-labels-idx1-ubyte t10k-images-idx3-ubyte.gz => t10k-images-idx3-ubyte
数据格式转换
将上一步下载解压后的文件转换为lmdb文件. Caffe支持多种数据格式输入网络:leveldb,lmdb,HDF5等,可以根据自己需要选择.
./examples/mnist/create_mnist.sh
在 ./examples/mnist/目录下会创建2个文件夹:mnist_train_lmdb和mnist_test_lmdb,其中分别包含data.mdb和lock.mdb两个文件
网络配置
LeNet网络定义在examples/mnist/lenet_train_test.prototxt文件中,需要关注的是里面source参数文件路径.
查看文件
gedit examples/mnist/lenet_train_test.prototxt
关注: TRAIN 的data_param的source: "examples/mnist/mnist_train_lmdb", TEST 的data_param的source: "examples/mnist/mnist_test_lmdb"
训练网络
./examples/mnist/train_lenet.sh # 迭代10000次, 输出 "Optimization Done." # 准确率达到99%
参数配置
gedit examples/mnist/lenet_solver.prototxt
默认是使用GPU完成运算,如果使用的是CPU,则需要修改配置文件
# 将配置文件最后一项修改 # solver mode: CPU or GPU solver_mode: GPU # 为 solver_mode:CPU
2. cifar10
基本过程同mnist, 执行命令如下:
./data/cifar10/get_cifar10.sh ./examples/cifar10/create_cifar10.sh ./examples/cifar10/train_quick.sh
网络配置
gedit examples/cifar10/cifar10_quick_train_test.prototxt
参数配置
gedit examples/cifar10/cifar10_quick_solver.prototxt
运行结果[迭代了5000次,准确路74.8%]:
3. 生成网络组织模型图形
下面以打印mnist网络模型为例,利用的是caffe内提供的draw_net.py ,在caffe-master/python目录下,需要make pycaffe之后才可以使用
在当前目录为caffe-master下,执行
python ./python/draw_net.py ./examples/mnist/lenet_train_test.prototxt lenet.jpeg
在会在当前路径caffe-master下生成一张lennet.jpeg图像
iiiiiiiii