windows(无GPU)+VS2013,caffe安装测试mnist问题及解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Ffilter/article/details/72588358

刚接触DL,caffe安装,小菜一枚,仅此记录走过的坑。整不起GPU,只能在CPU上比划比划。

一、准备工具:

VS2013(本文仅限于VS2013版本,VS2015版本目前还未搞定,搞定后待续)

windows版本的caffe https://github.com/BVLC/caffe/tree/windows(直接打开下载到caffe-windows压缩文件,解压即可,本文未改解压文件名,以下涉及的目录都是从该文件caffe-windows往下的,安装繁琐,目录搞对很关键)


二、安装过程:

1、caffe-windows\windows目录下,CommonSettings.props.example复制一份更名为CommonSettings.props,


打开并修改如下几个地方,只用CPU训练故CpuOnlyBuild设为true,UseCuDNN设为false,不用GPU所以Cuda版本7.5那个就没管。由于是菜鸟,就不考虑和Python、MATLAB结合做什么东西,先玩玩caffe,熟一点之后在做其他,因此后面两个Support都设为false。这个文件其他地方不用修改。


2、用VS2013打开Caffe.sln文件,解决方案会包含15个项目,右键解决方案,生成解决方案,会在caffe-windows文件相同的目录下生成NugetPackages文件夹,文件夹内容如下:


等待几分钟,NugetPackages文件夹生成完之后,右键解决方案,属性,通用属性-启动项目,点选当前选定内容,然后确定。


3、找到caffe->caffe.cpp,ctrl+f5编译该文件,编译成功后,出现如下图,即表示安装成功。


以上安装过程,主要参考了http://blog.csdn.net/qq_14845119/article/details/52415090,特此感谢。不过安装期间,还算顺利,故没出现其他状况。不过,mnist测试时,出了两个问题,解决如下,希望对初学者有所帮助。

三、mnist测试问题:

1、去官网http://yann.lecun.com/exdb/mnist/下载,如下四个文件,


不难看出,两个train的和两个test的,然后把train的两个文件解压放在caffe-windows\data\mnist\mnist_train_lmdb,把test的两个文件解压放在caffe-windows\data\mnist\mnist_test_lmdb(不要搞错,后面用到数据集也会用到这个路径)。



2、在caffe-windows根目录下,编写create_mnist.bat文件,内容如下:

.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_train_lmdb\train-images.idx3-ubyte 
.\data\mnist\mnist_train_lmdb\train-labels.idx1-ubyte .\examples\mnist\mnist_train_lmdb   
echo.  
.\Build\x64\Release\convert_mnist_data.exe .\data\mnist\mnist_test_lmdb\t10k-images.idx3-ubyte   
.\data\mnist\mnist_test_lmdb\t10k-labels.idx1-ubyte .\examples\mnist\mnist_test_lmdb   
pause  

然后保存,双击该脚本create_mnist.bat运行

然而,问题来了:(1)、双击该脚本,如果不做其他修改,且在caffe-windows\examples\mnist\mnist_train_lmdb  所在的盘没有1TB的空间的时候,会出现check failed,如下:


可以看到是convert_mnist_data.cpp里面传出的,首先找到该文件在caffe-windows\examples\mnist路径下,打开该文件可以看到:


这里出现的是(112 vs. 0),与图中101行划线的地方有关,该行经查阅http://www.voidcn.com/blog/whiteinblue/article/p-3126704.html,应该是检查lmdb操作的一个空间的大小,那个数值也就是1TB的大小,所以caffe-windows所在的盘没有2TB(生成两个文件夹),这里会出现问题。

解决方法:将这里改成小一点的数值,我改的是10737418241GB,视情况而定吧),我之前编译Caffe.cpp的时候,扫了一眼解决方案中有convert_mnist_data项目,重新打开看了一下确实有,由于convert_mnist_data.cpp改动,回去对Caffe.sln重新生成一次解决方案,编译,不然create_mnist.bat里面,要用到的convert_mnist_data.exe还是原来的,运行create_mnist.bat文件又会出现相同的问题。

2)、重新生成解决方案,编译caffe.cpp后,如果直接双击create_mnist.bat,就会出现如下问题:


这里出现的是(-1 vs. 0),与convert_mnist_data.cpp98行有关,其实原因就是,只要运行一次create_mnist.bat,就会在caffe-windows\examples\mnist路径下生成两个文件夹,如下:

如果文件已经存在就会出现本问题。

解决方法:双击执行create_mnist.bat之前,去caffe-windows\examples\mnist下,确认这两个文件是否已经存在,如果有,就删掉。

3、修改caffe_windows\examples\mnist\lenet_solver.prototxt,将最后一行改为solver_mode:CPU,懒得上图了。

4、在caffe_windows根目录下,编写train_mnist.bat文件,内容如下:

.\Build\x64\Release\caffe.exe train --solver=.\examples\mnist\lenet_solver.prototxt  
pause  

双击执行该文件,就开始训练了,10000次迭代太久,为了截个图,来个1000次的,上图如下:


具体数值及含义,有待进一步学习,本文亲测有效,若有表述不当或不足之处,请大神们批评指正。

 
 
 
 
 
 

 
 
 
 
 

猜你喜欢

转载自blog.csdn.net/Ffilter/article/details/72588358