zoukankan      html  css  js  c++  java
  • 【caffe-windows】 caffe-master 之 mnist 超详细

    本教程尽量详细,大多步骤都有图,如果运行出错,请先对照自己的文件是否和图上的一样,包括标点啊,空格啊,斜杠,反斜杠啊之类的小细节。

    第一步:   官网下载mnist数据 http://yann.lecun.com/exdb/mnist/,共4个文件,解压放到caffe-masterdatamnist下

    如图:

    第二步: 转换成caffe需要的数据格式,此处转换为 LMDB(cifar是转换成 LEVELDB,可对比参考如何实现的) ,转换格式需要用到caffe里的项目convert_mnist_data ,这个convert_mnist_data.exe程序是放在caffe-masterBuildx64Release下,如果是用 debug生成的解决方案,则是在caffe-masterBuildx64Debug下,这个在写 bat文件的时候要注意更改相应的路径。 

    在caffe-masterdatamnist下新建一个文本文档,更改后缀为 .bat  在里面复制以下code: 

    ....Buildx64Releaseconvert_mnist_data.exe  ....datamnist rain-images.idx3-ubyte ....datamnist rain-labels.idx1-ubyte ....examplesmnistmnist_train_lmdb  

    echo.  

    ....Buildx64Releaseconvert_mnist_data.exe  ....datamnist 10k-images.idx3-ubyte  ....datamnist 10k-labels.idx1-ubyte ....examplesmnistmnist_test_lmdb 

    pause  

    其实第一个路径就是 exe文件所在路径, 后面两个就是数据所在路径,最后一个是输出文件路径

    保存后,双击运行

    如图:

    (PS:想转换成LEVELDB格式的话,只需要在.bat文件中把 mnist_train_lmdb改成mnist_train_leveldb ,有两处喔! )

    第三步: 更改lenet_train_test.prototxt 和lenet_solver.prototxt文件,主要是改数据的路径以及数据的格式(默认LMDB,若在第二步转成了LEVELD的话,要改成LEVELDB )

    首先 lenet_train_test.prototxt改的有

        source: "../../examples/mnist/mnist_train_lmdb"

        batch_size: 64

        backend: LMDB

        source:"../../examples/mnist/mnist_test_lmdb"

        batch_size: 100

        backend: LMDB

    如图:

    lenet_solver.prototxt改的有

    net:"../../examples/mnist/lenet_train_test.prototxt"

    snapshot_prefix:"../../examples/mnist/lenet"

    如图:

    若用CPU在最后一行改成 CPU

    第四步: 开始训练,和之前我博客里cifar10一样,有两种方法,这里只介绍第一种方法,用批处理文件的方法(想知道第二种方法的请查看之前博客http://blog.csdn.net/u011995719/article/details/53998331

     

    在caffe-masterexamplesmnist 下建立文本文档,后缀改为 .bat  复制以下code:

    ....Buildx64Releasecaffe.exe train--solver=../../examples/mnist/lenet_solver.prototxt

    Pause

     

    如图:

     

     

     

     

    保存,双击运行,弹出命令窗,等待训练结束,我的显卡是 GTX 960M ,只需要1分07秒就迭代了10000次,准确率 0.9915(用了一台i3的笔记本,cpu跑的,用了17分钟!)

    如图:

     

     

     

    PS: 总结两个遇到问题:

    1. 转换数据时候要确定转换的是 LMDB还是LEVELDB,这个是在一开始转换的时候设置的,一旦设置,在后面的train_test.prototxt文件中一定要对应的改过来,切记,切记。

    2.Debug 和 Release    ,这个是在VS2013中选择的,具体有什么区别我不太清楚(百度了,说对使用问题不大),但是我们在调用例如 convert_mnist_data.exe 、compute_image_mean.exe等这些 应用程序时,要选择路径,一定要看清楚你生成的是在Debug文件夹(caffe-masterBuildx64Debug)里还是在Release(caffe-masterBuildx64Release)里,如果你生成的是在Debug里,而调用的时候是用路径:. Buildx64Release 的话,就会出现如下错误:

     

    当然,可以在VS2013中分别 选择 Debug和Release 进行生成,这样就不用担心第二个问题啦。

  • 相关阅读:
    编译 出错
    关于工程思维
    关于大屏拼接方案 触摸屏 红外 和 电容屏
    爱宝A-1180热转印条码打印机 打印乱码,对不齐的问题
    制作 企业微场景 邀请函
    《七年就是一辈子》 逻辑思维 互联网 得到
    Python妙用re.sub分析正则表达式匹配过程
    第11.25节 Python正则表达式编译re.compile及正则对象使用
    Python正则表达式书写容易碰到的陷阱:W*和W*?匹配过程遇到的问题
    Python正则表达式W+和W*匹配过程的深入分析
  • 原文地址:https://www.cnblogs.com/TensorSense/p/6260293.html
Copyright © 2011-2022 走看看