还是1级怪啊---mnist实例(Windows7+VS2013+caffe)

来源:互联网 发布:java使用postmethod 编辑:程序博客网 时间:2024/06/07 10:24

        又是调试了一番,才完成了hello world级别的实例操作----mnist实例。这个例子大多是用来测试caffe是否可用的吧。但是就是这么简单的东西,小新也忙活折腾了好几天,原谅我的智商吧。大哭

        这次小新也有参考其他厉害的博主的博文,比如这个,http://www.cnblogs.com/NanShan2016/p/5469942.html   小新后面的操作基本都是按照这个完成的,好感谢博主啊!这里就仅仅是一个记录吧。

        首先,21天这本书里基本操作是用的ios系统,ios基本操作和linux很接近,所以里面有的操作不一定是适用windows平台的,比如在linux可以直接运行get_mnist.sh脚本获得mnist数据集,但是在Windows里,.sh脚本是没法运行的,小新是自己下载的压缩包解压的。也有一种方法是写将.sh脚本改写为.bat脚本,这样可以在windows运行,但小新没有尝试过这么做。下载完后有四个压缩包:

                                       

        解压后为:

                                             

        这个原始数据集是二进制文件,是不能直接被caffe识别的,需要转换为LEVELDB或者LMDB,小新这里用的是LMDB。

        1.数据转换

         数据转换小新走了好多弯路,真的是不忍回首啊。还记得当时生成解决方案的时候,下载的依赖包吗?这会就是依赖包派上用场的时候了。依赖包有自动编译的还有人自己编译的,目前小新也不知道这两者有什么差别,为什么 21天 里说要首选自己编译的。小新试过自己编译啊,编译到LMDB真的是花了我很长时间也没成功,我也不知道为什么,不像说的那样直接编译就好了。。。所以这个以后再说吧,以后自己编译的机会很大。

        我在博客上又看到一篇教程:http://blog.csdn.net/zb1165048017/article/details/52250802 ,转换数据基本就是按照这么来的,成功了。

          (1)确保四个数据文件放入自己所安装的caffe文件夹下的example文件夹中,我的路径是F:\caffe\caffe-master\examples\mnist  ,在里面新建文件夹mnist,把四个数据都放进去。

          (2)打开cmd命令行,进入到F:\caffe\caffe-master\examples\mnist文件夹中,运行在begug中的exe文件,此时路径一定要正确,一定要是完全成功的那个caffe.exe所在的地址,不然会出现这样子的错误:

                                           

          

        因为我编译caffe也弄了好几次才成功,所以完全编译成功的解决方案的路径是在F盘的,所以正确的应该是这个样子的:

                                        

        小新没有出现什么内存的问题,算不算是幸运?运行结束后,会出现文件夹,文件夹里有两个文件

                                                  

        这两个文件夹的名字就是之前cmd命令行里命名的,这两个文件夹是生成的,里面的文件都是这样子的:

                                        

        这样子,数据转换工作就是成功了。下面进行训练。

        2.训练,运行exe

        这里就是参考了小新这篇博文开头给的地址的那篇博文,真的是炒鸡感谢啊!!再贴一次:http://www.cnblogs.com/NanShan2016/p/5469942.html 但是小新在刚开始试的时候,看第二种方法步骤少,就使用了第二种,不过在最后一步运行脚本的时候,总是会失败,报错如图:

                                           

        电脑说要确保lenet这个文件夹是存在并且可以写入的,但是win7的文件夹是只读的,怎么都改不了,我在网上搜搜好像是说win7的文件夹是默认只读的,是修改不了的,我的春秋大梦啊就此破灭。也许其他人用的是win8啊win10啊更高级的系统的,所以小新在此不建议win7用户使用第二种方法啊,都是泪啊有木有!!所以我就试了第一种方法,建议win7妹子们用这个啊!小新写的粗,凑活记录一下。

           (1)在caffe.exe所在的文件夹新建一个example2文件夹,把所有用的东西,比如lmdb数据集和lenet_train_test.prototxt和lenet_solver.prototxt都放进去。

             (2)将lenet_train_test.prototxt和lenet_solver.prototxt都改成自己的地址:

                                    

                                    

                                        

                                    

        这里改的是绝对路径,没有GPU就改成了CPU。

           (3)接下来是写.bat文件,将trainlenet.sh文件复制到caffe.exe所在的文件夹里,.sh文件是linux里的,所以我们要把它改写为.bat文件。内容如下:

                                                          

         因为train_lenet.bat文件就在.exe目录下,写相对地址也是可以的,保存

            (4)双击运行.bat文件,不再有错误了,出来

                                                

                                    

        机子比较老,等了半个多小时才出来结果,结果是这样的:

                                          

        且有文件生成:

                                          

        至此,训练完成了。

1 0