Windows上运行Caffe自带的mnist例子

环境要求: win10,VS2013,CUDA7.5

Caffe的windows版下载地址:https://github.com/Microsoft/caffe

配置Caffe工程

1.   将Caffe源码的windows目录下CommonSettings.props.example文件复制一份,并重命名为CommonSettings.props。

2.   打开工程Caffe.sln,切换到Release,右键解决方案生成全部开始编译,会先下载相关的依赖库,如下图所示:


完成后,会发现在caffe源码目录的上一级多了一个名为NugetPackages的文件夹


3.   下载cudnn-7.5-windows10-x64-v5.0-ga.zip解压放置到NugetPackages同一级目录,如下图所示:


同时修改CommonSettings.props中的CuDnnPath的值为文件夹cuda的父目录路径

4.   这时会出现如下的错误信息


这是由于在相关目录

C:\ProgramFiles (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\

C:\ProgramFiles (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations

下缺少以下CUDA相关配置文件造成的:

(1)   CUDA7.5.props

(2)   CUDA7.5.targets

(3)   Nvda.Build.CudaTasks.v7.5.dll

这3个文件在NVIDIA GPU Computing Toolkit以下两个目录中:

CUDA\v7.5\extras\visual_studio_integration\MSBuildExtensions

直接拷贝过去即可

5.   再次编译遇到如下错误:


这是我们需要用到NugetPackages\protoc_x64.2.6.1\build\native下的protoc.exe来生成caffe.pb.h和caffe.pb.c文件,将protoc.exe拷贝到caffe-master\src\caffe\proto目录下,和caffe.proto放置在一起,然后CMD到这个文件夹,执行下面命令:

protoc caffe.proto --cpp_out=./ 

即可生成相应文件,如下图所示:


6.   右键生成解决方案,编译成功后会生成一个Build的文件夹,里面有编译好的东西,如下所示:


运行Mnist

1.   首先下载数据文件

http://yann.lecun.com/exdb/mnist/train-images-idx3-ubyte.gz

http://yann.lecun.com/exdb/mnist/train-labels-idx1-ubyte.gz

http://yann.lecun.com/exdb/mnist/t10k-images-idx3-ubyte.gz

http://yann.lecun.com/exdb/mnist/t10k-labels-idx1-ubyte.gz

下载后如下四个文件:


放置到caffe-master\data\mnist目录下,解压,新建一个create_mnist.bat,内容如下:

..\..\Build\x64\Release\convert_mnist_data.exetrain-images.idx3-ubyte train-labels.idx1-ubyte..\..\examples\mnist\mnist_train_lmdb  

echo.  

..\..\Build\x64\Release\convert_mnist_data.exet10k-images.idx3-ubyte t10k-labels.idx1-ubyte ..\..\examples\mnist\mnist_test_lmdb 

pause 

执行create_mnist.bat文件,在examples\mnist目录下生成了对应的训练和测试集数据:


2.   打开examples\mnist目录下的lenet_solver.prototxt文件,可以看到solver_mode: GPU这一选项,可以设置为GPU或者CPU

3.   打开examples\mnist目录下的lenet_train_test.prototxt文件,修改第一个和第二个layer的source为第一步生成的训练测试数据,如下图所示:


4.   在caffe-master目录下生成trian_mnist.bat文件,内容如下:

.\Build\x64\Release\caffe.exetrain --solver=.\examples\mnist\lenet_solver.prototxt 

Pause

5.   运行train_mnist.bat,开始训练,如果出现下面错误


那么说明当前设置的CUDA的architecture与电脑的CUDA不匹配


打开CommonSettings.props可以看到CudaArchitecture选项,设置成电脑GPU的Architecture,重新编译之前的caffe工程。

说明:编译之前,一定要确定对应的CudaArchitecture是正确的,查看方法:右键libCaffe工程->属性


点开CodeGeneration对话框,下面有一个宏按钮,点击如下,找到CudaArchitecture,查看值是否正确(我的电脑GPU计算能力是3.0,因此设置为compute_30,sm_30)


6.   训练过程如下:


训练结果如下:


准确率99.13%,结果文件如下:



From: https://blog.csdn.net/jieleiping/article/details/53134174




猜你喜欢

转载自blog.csdn.net/tony2278/article/details/80152111
今日推荐