Turbot-DL入门教程篇-Caffe-mnist实例
Turbot-DL入门教程篇-Caffe-mnist实例
说明:
- 介绍如何通过Turbot-DL运行Caffe的mnist实例
介绍:
- mnist是一个手写数字库,由DL大牛Yan LeCun进行维护。
- mnist最初用于支票上的手写数字识别, 现在成了DL的入门练习库。
- 针对mnist识别的专门模型是Lenet,算是最早的cnn模型了。
- mnist数据训练样本为60000张,测试样本为10000张,每个样本为28*28大小的黑白图片,手写数字为0-9,因此分为10类
步骤:
- 进入目录
$ cd ~/dl/openpose/openpose/3rdparty/caffe
下载mnist数据和转换
- 首先下载mnist数据,假设当前路径为caffe根目录
$ sudo sh data/mnist/get_mnist.sh
- 运行成功后,在 data/mnist/目录下有四个文件:
train-images-idx3-ubyte: 训练集样本 (9912422 bytes)
train-labels-idx1-ubyte: 训练集对应标注 (28881 bytes)
t10k-images-idx3-ubyte: 测试集图片 (1648877 bytes)
t10k-labels-idx1-ubyte: 测试集对应标注 (4542 bytes)
- 这些数据不能在caffe中直接使用,需要转换成LMDB数据
$ sudo sh examples/mnist/create_mnist.sh
- 如果想运行leveldb数据,请运行 examples/siamese/ 文件夹下面的程序。
- examples/mnist/ 文件夹是运行lmdb数据
- 转换成功后,会在 examples/mnist/目录下,生成两个文件夹
- 分别是mnist_train_lmdb和mnist_test_lmdb,里面存放的data.mdb和lock.mdb,就是我们需要的运行数据。
修改配置:
修改配置文件,如果你有GPU且已经完全安装好,这一步可以省略,如果没有,则需要修改solver配置文件。
需要的配置文件有两个,一个是lenet_solver.prototxt,另一个是train_lenet.prototxt.
首先打开lenet_solver_prototxt
$ sudo vi examples/mnist/lenet_solver.prototxt
- 根据需要,在max_iter处设置最大迭代次数,以及决定最后一行solver_mode,是否要改成CPU
- 保存退出后,就可以运行这个例子了
$ sudo sh examples/mnist/train_lenet.sh
CPU运行时候大约13分钟,GPU运行时间大约4分钟,GPU+cudnn运行时候大约40秒,精度都为99%左右
效果图:
问题:
问题1:没有build/examples/mnist/convert_mnist_data.bin
解决:convert_mnist_data.bin文件在examples/mnist的目录下,移动到build/examples/mnist
在caffe根目录下操作
mkdir -p build/examples/mnist/
sudo mv examples/mnist/convert_mnist_data.bin build/examples/mnist/
问题2:没有build/tools/caffe
解决:caffe文件在tools/下,复制一份到build/tools/目录
mkdir -p build/tools
sudo cp tools/caffe build/tools/
参考:
- http://caffe.berkeleyvision.org/gathered/examples/mnist.html
- http://caffe.berkeleyvision.org/
- http://www.cnblogs.com/denny402/p/5075490.html
- https://huangying-zhan.github.io/2016/08/16/Caffe-installation-and-practice-on-Jetson-TK1.html
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号