一、需要安装的软件
1)vs2013,我是在http://www.52pojie.cn/thread-492326-1-1.html这个网址安装的。我之前用的是vs2012,按照网上的配置教程会爆各种错误,NuGet包总是还原失败,调试了一整天都没弄成功,最终还是安装了vs2013,才使配置过程一切顺利,所以还是建议安vs2013。
2)matlab R2014a,这是我用的matlab版本,如果不打算配置matlab这个接口的话可以不用下载这个。
3)cuda 8.0,cuda的下载与安装介绍在我的另一篇文章里有http://www.cnblogs.com/luyaoblog/p/7247671.html。这里需要注意的一个问题就是下载之前一定要先查一下自己显卡的型号,以免下载和自己电脑不匹配的cuda。
4)下载caffe for windows,解压后的文件为caffe-master,他有两层同名文件夹,不要擅自修改。下载地址https://github.com/Microsoft/caffe。
5)下载cuDNN,下载地址https://developer.nvidia.com/cudnn,需要先注册在选择下载版本,建议下载版本4或5,这是因为在【..\caffe-master\windows】下CommonSettings.props文件中第23行有说明
<!-- CuDNN 4 and 5 are supported -->
二、整理下载的文件
建议把caffe-master.zip和cudnn-8.0-window10-x64-v5.0-zip放在一个文件夹内解压,文件夹名字为caffe。如图
NugetPackages这个文件夹先不用管,这是后期自动生成的。
三、修改配置文件
打开caffe-master文件夹,然后看到一个windows文件夹,然后继续打开windows文件夹,看到里面一个CommonSettings.props.example文件,复制出来一份,并改名字为CommonSettings.props。
接下来用vs2013打开CommenSetting.probs文件,先不要点Caffe.sln,因为你直接点可能会导致libcaffel和test_all加载失败,我们首先打开这个文件CommenSetting.probs,然后修改里面的配置信息。
主要修改的内容为:
<UseCuDNN>true</UseCuDNN>
<CudaVersion>8.0</CudaVersion>
说明:这里UseCuDNN设置为true,因为我下载的cuda版本为8.0,这里原来是7.5,需要改成8.0。
<MatlabSupport>true</MatlabSupport>
<CudaDependencies></CudaDependencies>
说明:因为我要配置matlab的接口,所以要把这个设置为true
<!-- CuDNN 4 and 5 are supported -->
<CuDnnPath>D:\caffe</CuDnnPath>
<ScriptsDir>$(SolutionDir)\scripts</ScriptsDir>
说明:这里CuDnnPath是自己电脑里cudn存放地址的上一级文件名称,因为前面介绍了,建议将cuda和cudnn的解压文件放在一个caffe文件夹下。
<PropertyGroup Condition="'$(MatlabSupport)'=='true'">
<MatlabDir>D:\Program Files\MATLAB\R2014a</MatlabDir>
<LibraryPath>$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)</LibraryPath>
<IncludePath>$(MatlabDir)\extern\include;$(MatlabDir)\toolbox\distcomp\gpu\extern\include;$(IncludePath)</IncludePath>
</PropertyGroup>
说明1:这里MatlabDir是自己电脑中matlab启动文件的地址,如果不知道,可以右键桌面快捷方式从属性中查看。
说明2:IncludePath也改了,直接按照我的复制就可以。
四、用vs2013打开caffe.sln
因为刚才已经将CommenSetting.probs修改过了,现在应该可以正常载入了。可以看到主文件现在是libcaffe(黑色加粗的文件)。
现在点击【调试】-【libcaffe属性】
然后现在开始编译,先编译的是libcaffe,如果成功的话基本就不会再有大问题了。
这个时候,在你刚刚解压出来的caffe-master文件夹下面就应该出现一个名叫Build的文件夹,以后编译的成功和运行需要的文件都会存放在build\X64\Relase下面.
如果刚刚那步成功了,接下来右键解决方案“caffe”选择属性,将单启动项目改为多启动项目,然后重新编译,耐心等待最后编译结果。
五、matlab的设置
1)打开matlab2014a,选择【主页】-【设置路径】-【添加并包含子文件夹】
选择D:\caffe\caffe-master\caffe-master\Build\x64\Release\matcaffe,点击保存,Build文件夹就是刚刚编译成功后生成的文件夹。
2)设置系统变量
添加环境变量,在path中添加D:\caffe\caffe-master\caffe-master\Build\x64\Release。
重启matlab,然后在命令行中输入:caffe.reset_all测试,如果如下图所示,说明配置成功。
六、出现的一些问题
问题1:libcaffe和testall加载不成功
解决:1.检查cuda版本,即CommonSettings.props中的cuda版本和自己电脑中安装的是否一致,CommonSettings.props中默认是7.5。
2.vs2013的安装路径中缺少CUDA 8.0.props,该文件的路径为(我电脑中的路径)
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.\extras\visual_studio_integration\MSBuildExtensions
将其复制后粘贴到
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations
问题2:libcaffe编译不成功,missing Nuget
解决:这是我用vs2012出现的问题, 换成vs2013之后就好了。
问题3:caffe.sln error MSB8020: The builds tools for v120 (Platform Toolset = 'v120
解决:因为我一开始用的是vs2012(v110),这个工具好像默认是vs2013(v120),但是我在设置里把libcaffe的平台改成了vs2012还是不成功,随便这个错误没有了, 但是又有了其他错误,总之最后还是换成了vs2013就一切顺利了。。
问题4:无法打开输入文件“caffelib.lib”
这个是最早照着网上一个教程,下载了caffe-vs2012和一个caffe-windows,把caffe-vs2012里的三个文件夹复制到caffe-windows里,按照教程打开MainBuilder.sln时会报的错误,我也不清楚什么原因。还是老老实实按照这个教程一步一步来吧。