安装caffe的时候一定要保持一个乐观的心态,不然容易放弃人生。由于自己是装完才写的,所以并没有截图。
平台:Window7
硬件:NVIDIV quaro M4000
软件:Visual Studio 2013
- 1.安装Visual Studio 2013
2013之前的版本都不可以,只有2013以上才可以,但是电脑上不同的Visual Studio可以兼容,而且Visual Studio 2013还是免费的,但不能用于商用。
- 2.安装CUDA 7.5
版本最好选7.5之上,因为官方用的7.5,软件会向上兼容,而不会向下兼容。
如果你不小心装错了,到程序和功能里卸载就好了,根据你的安装时间卸载跟NVIDIV有关的东西,千万不要卸载NVIDIA的图形驱动程序、NVIDIA Physx系统软件,这两个并不是新安装的,只是安装的时候会更新这两个软件。
安装过程中最好关了360这些杀毒软件,因为安装过程中360不时的会跳出来问你是否允许本次操作,如果不点允许的话几十秒之后自动就给你阻止了。而且360不允许CUDA更新图形驱动程序,这会导致CUDA安装失败。安装完成以后打开cmd 输入nvcc -V不报错就是安装成功了。
然后编译cuda7.5自带的samples。用Visual Studio打开C:ProgramDataNVIDIA CorporationCUDA Samplesv8.0目录下的Samples_vs2013.sln,在Release下,选择rebuild solution。
第一次编译报错,提示你找不到”d3dx9.h”、”d3dx10.h”、”d3dx11.h”头文件,可以安装DXSDK_Jun10.exe就可以解决。点这里下载,然后安装,如果你电脑上有Visual Studio 2010,这个安装会失败,因为有两个文件Visual Studio 2010已经安装了,SDK不能重复安装所以就报错了,不过不用管,这个时候SDK已经安装成功了。
第二次编译又报错了,提示找不到 “mpi.h”。网上竟然没有这个解决方案,不要方,要优雅,自己可以解决的。查了一下这是个高性能计算的API,去这里下载MPICH,windows的在最下面,点击http后会有两个文件让你选择下载,当时两个都下载下来了,最后发现只用了第一个。选择第一个下下来,安装之后里面就有mpi.h的头文件。然后在Visual Studio里面更改报错的文件,将#include<mpi.h>改成#include "mpi.h所在路径+mpi.h"再次编译就可以了。
执行C:ProgramDataNVIDIA CorporationCUDA Samplesv8.0inwin64Release目录下的deviceQuery.exe和bandwidthTest.exe,没报错就算安装成功。最好在cmd下运行这两个程序,因为直接双击的话窗口闪一下就关闭了,什么都看不见。
- 3.安装cuDNN
GPU库会用到这个库,然而默认安装驱动是不安装这个的,因此需要去官网下载安装,点这里下载,这个可以下载的时候需要注册,不麻烦,填一下个人信息就好了。下载完成后,进行解压,将相应的bin,include,lib下的文件分别放于自己的cuda下面的相应目录中,例如,本人电脑的cuda目录为C:ProgramFilesNVIDIA GPU Computing ToolkitCUDAv7.5,因此,将刚才解压的文件放在这个目录下面的bin,include,lib文件夹下就好了。
- 4.安装Anaconda
Anaconda 是 Python 的一个发行版,解决了两个问题:
1)提供包管理,功能类似于 pip,Windows 平台安装第三方包经常失败的场景得以解决
2)提供虚拟环境管理,功能类似于 virtualenv,解决了多版本Python并存问题。
在官网下载这个会失败,因为网速很慢,推荐使用国内的清华镜像下载。
安装Anaconda最好选Anaconda2,因为这个版本的Python是2.7。不过python2.7官方已经停止更新了,你要是觉得python版本低,也可以装Anaconda2以上的版本,然后重新建一个python2.7的环境,两个python版本可以共存,Anaconda就是这么好用,不过自己创建的版本很多包都需要自己装。
在Anaconda prompt下直接输入:
conda create --name py27 python=2.7 activate py2.7
安装过程不报错就好了。
在Anaconda的根目录下的envs目录下会生成一个叫做py27(自己给python2.7环境起的名字)的目录,那就是python2.7所在目录。
安装Anaconda的时候不会默认添加环境变量,自己可以在右键电脑->属性->高级变量->系统变量的path添加Anaconda的安装路径,这里的python是Anaconda自带的python,如果要加入的是自己创建的python环境,那么要添加的是根目录的envs里面的py27目录。
切换python版本只需要在Anaconda prompt下输入:
activate py2.7
然后用conda install安装自己需要的包就好了。
- 5.编译caffe
将github上下载的caffe-master.zip解压,进入根目录下的windows目录,将该目录下的Common.Setting.props.example复制一份,并重命名成Common.Setting.props, 用Visual Studio 2013以及以上版本打开,修改里面的配置文件。
要改的地方:
记得改cuda的版本,自己装的什么版本就改成什么版本,不然libcaffe和test_all不会加载成功。还有要改python的安装路径。
点击caffe根目录下的windows目录,在该目录下用VS2013打开Caffe.sln用。这里由于别的模块用到了libcaffe,所以,首先选择libcaffe,右键生成。成功之后,再选择整个解决方案,右键生成解决方案。
这个过程非常非常慢,慢到让我以为出了什么问题,取消重新生成了好几次,这个过程中还有很多依赖包要装。
Nuget会提示下载一些东西,包括boost,opencv2.4.10,gflags,glog,hdf5,lmdb,LevelDB,OpenBLAS,protobuf等预编译的依赖包。过程有点慢,多等会就ok。下载完成后会在caffe 的同级目录生成NugetPackages的文件。
如果出现没有生成object文件的错误,双击该错误,点击确定,然后保存即可。
出现无法打开libcaffe.lib的错误,编译生成libcaffe,再编译整个解决方案。
编译整个解决方案的时候,出现 Cannot open include file: 'gpu/mxGPUArray.h': No such file or directory的错误,排查了一下,发现是电脑上装的matlab(2016的)版本太新了,修改CommonSettings.props配置就好了,找到'gpu/mxGPUArray.h‘所在位置,然后增加一个MatlabDir就好了,但是我又不用MATLAB,所以直接在CommonSettings.props里面关掉了matlab接口。
右键解决方案->属性->通用属性->启动项目->当前选定内容,然后保存。
点击caffe->caffe.cpp,按F5运行,生成如下界面,证明安装成功。同时在根目录下面会生成相应的exe,lib,dll等文件。运行的时候360会阻止运行,将caffe加入信任软件就好了。
参考博客:http://blog.csdn.net/qq_14845119/article/details/52415090