首页 > 学习Turbot-DL入门教程 > Turbot-DL入门教程篇-Caffe-mnist实例
2019
01-21

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类

步骤:

(1)下载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


本文》有 0 条评论

留下一个回复