caffe源码包提供了多个DEMO,这里介绍mnitscifar10的实验

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两个文件

Caffe自带的两个DEMO

网络配置

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

 Caffe自带的两个DEMO

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%]:

Caffe自带的两个DEMO

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图像

Caffe自带的两个DEMO

  iiiiiiiii