https://github.com/Microsoft/caffe
上有官方的安装说明。
解压文件到任意位置将cuDNN解压后放在另外的目录下,cuDNN中有.cuda\bin+include+lib文件夹。后面需要在vs属性页中指定此cudnn的路径、。
我的是 D:\cudnn-win64\cudnn-win64-v4.0\cuda\{bin+include+lib}
这里注意vs2013的安装最好安装在默认的C盘位置。 如果不是在C盘位置,会报错“E:\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.targets(57,5): error MSB3030: 无法复制文件“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\redist\x64\Microsoft.VC120.CRT\msvcr120.dll”
这个是可以解决的,你找到你安装的vs目录下,找到Microsoft Visual Studio 12.0文件夹,整个复制到他这个位置即可打开caffe-master\windows文件夹,复制CommonSettings.props.example,再将CommonSettings.props.example.副本 重命名为CommonSettings.props。 用VS打开此配置文件,按照自己的配置进行设定,主要有CUDA/Python/Matlab/cudnn--设定为true,并配置其路径。
cuda路径是默认搜索的。
cudnn的路径可以自己在
指定之后,另外注意,在cudnn包含目录和库目录前还要加上这个路径,如下:
D:\cudnn-win64\cudnn-win64-v4.0
Matlab和Python的路径直接替换掉原文本中的就可以,如下。
D:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\
D:\MATLAB\R2014a
完整配置文件如下图所示:
$(SolutionDir)..\Build
false
true
7.5
true
true
compute_35,sm_35;compute_52,sm_52
D:\cudnn-win64\cudnn-win64-v4.0
$(SolutionDir)\scripts
cublas.lib;cuda.lib;curand.lib;cudart.lib
cudnn.lib;$(CudaDependencies)
D:\cudnn-win64\cudnn-win64-v4.0
$(CuDnnPath)\cuda\lib\x64;$(LibraryPath)
$(CuDnnPath)\cuda\include;$(IncludePath)
$(BuildDir)\$(Platform)\$(Configuration)\
$(BuildDir)\Int\$(ProjectName)\$(Platform)\$(Configuration)\
$(OutDir);$(CUDA_PATH)\lib\$(Platform);$(LibraryPath)
$(SolutionDir)..\include;$(SolutionDir)..\include\caffe\proto;$(CUDA_PATH)\include;$(IncludePath)
D:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\
$(PythonDir)\libs;$(LibraryPath)
$(PythonDir)\include;$(IncludePath)
D:\MATLAB\R2014a
$(MatlabDir)\extern\lib\win64\microsoft;$(LibraryPath)
$(MatlabDir)\extern\include;$(IncludePath)
CPU_ONLY;%(PreprocessorDefinitions)
USE_CUDNN;%(PreprocessorDefinitions)
USE_CUDNN
WITH_PYTHON_LAYER;BOOST_PYTHON_STATIC_LIB;%(PreprocessorDefinitions)
MATLAB_MEX_FILE;%(PreprocessorDefinitions)
false
true
_SCL_SECURE_NO_WARNINGS;USE_OPENCV;USE_LEVELDB;USE_LMDB;%(PreprocessorDefinitions)
true
Full
NDEBUG;%(PreprocessorDefinitions)
MultiThreadedDLL
true
true
true
UseLinkTimeCodeGeneration
true
Disabled
_DEBUG;%(PreprocessorDefinitions)
MultiThreadedDebugDLL
true
配置完成后如下:
点击E:\caffe-master\windows文件夹里的Caffe.sln,这时你发现解决方案的9个项目中libcaffe和test_all没有加载成功。不过不影响,先把编译器切换到Release x64.然后点击本地windows调试器,nuget会先下载安装需要的一些库文件,下载完后后继续编译操作,中间可能会出现一些报错
在解决方案后中右击每一个项目,属性->C/C++,把“警告等级”调整为等级3,把“将警告视为错误”改成否。
报错“error C2220: 警告被视为错误 - 没有生成“object”文件”,解决方法是用vs2013打开这里报错的cpp,然后点击保存即可。我这里是nuget中的boost报错。
这里只是完成了 libcaffe项目的编译,下面一个一个右击剩余的8个项目,然后点击“生成”,即可。
运行build下的 test.exe时会提示找不到python27.dll,这是因为没有把python的python27.dll添加到系统路径path下。
往path下添加 D:\WinPython-64bit-2.7.10.3\python-2.7.10.amd64 即可。
在Matlab的搜素路径中加入,.\build\release\X64\matcaffe进去,即让matlab能找到 编译后的 caffemex_.win64这个文件。
或者直接将matcaffe文件夹拷贝到根目录下,并在每次构建新项目时,将 此路径添加为搜索路径。
在系统环境变量 path中添加".\caffe-master\Build\x64\Release",以供程序找到一些相关的dll模块。
否则在运行上述matlab demo时会提示“invalid .mexw64 找不到指定的模块.....”
*********若还有可能出现“caffe_.mexw64 找不到指定模块”这个Bug,原因可能是配置属性页的时候CUDA路径是默认的,如果装cuda的时候,先装cuda7.5, 再装6.5,那么系统变量中的CUDA_PATH和CUDASAMPLES_PATH都会被覆盖成v6.5,需要改回来再重新编译。
至此,已完成caffe在win7上的配置,python和matlab接口已配置完毕。
(1).可以打开winpython 或 anaconda/python,输入import caffe,观察导入模块,如无报错,则caffe配置成功.
(2).找到.matlab\demo下的classification.m运行如下:
需要将编译后的+caffe添加到搜索路径中去,这样有些麻烦,可在每次新建matlab项目时,选择性的添加这个路径。如下所示:。
本文是将编译后的matcaffe文件夹直接拖到了根目录下,屏蔽掉demo同路径下的+caffe,并修改classification_demo文件中的路径配置部分。
(2).找到.build\x64\release下的test_all运行如下: