记录一下如何在win10环境下安装CPU、GPU版本的caffe
- matcaffe是caffe的MATLAB接口,安装matcaffe使得用户可以直接利用MATLAB代码调用caffe。
- pycaffe是caffe的MATLAB接口,安装pycaffe使得用户可以直接利用python代码调用caffe。
需要注意的地方:
需要提前安装好VS2013和MATLAB2016a等软件
GPU版本需要安装Nvida驱动、cuda7.5和cudnn5.1,仅安装CPU版本caffe可以忽略第一、二步骤。
驱动安装
前往NVIDIA官网下载你这台电脑的最新驱动。
安装cuda7.5和cudnn5.1
cuda7.5安装需要安装最新版本的显卡驱动。点击安装,一路next即可。 需要注意记住cuda的安装路径。
cudnn5.1是一个压缩包,解压之后是一个名为cuda的文件夹,其中有bin、include、lib三个文件夹,将其中的内容,放到cuda文件夹中对应的位置即可。
对应cuda位置
安装python2.7和Anaconda2-5.2.0
anaconda是一个Python集成环境,先安装python和Anaconda2-5.2.0-Windows-x86_64.exe。
安装python2.7和Anaconda2-5.2.0都是一路next安装。先Python2.7后Anaconda,安装完成之后,修改一下环境变量,引入Anaconda的Script文件夹。
打开cmd,输入conda --version
和python
查看安装情况
安装caffe
预处理
前往git下载微软源caffe,地址如下:https://github.com/Microsoft/caffe
解压文件,更名为caffe
将NugetPackages文件夹放置到与caffe同一层级,NugetPackages中是一些boost.1.59.0.0、glog.0.3.3.0、OpenCV.2.4.10等caffe依赖。
进入/caffe/windows/目录下将CommonSettings.props.example复制为CommonSettings.props
双击Caffe.sln打开VS2013工程
编译libcaffe
libcaffe是caffe这一深度学习框架的一系列依赖库。编译caffe的顺序是:
libcaffe->caffe->matcaffe->pycaffe
修改CommonSettings.props为
如果你想编译CPU版本的caffe,请将UseCuDNN设置为false,CpuOnlyBuild设置为true。
注意修改MATLAB和Anaconda的安装路径
由于MATLAB2016a版本过高的原因,matcaffe下面的caffe_.cpp文件,将第16行的#include "gpu/mxGPUArray.h”
这个位置是没有mxGPUArray.h的,需要手动在E:\MATLAB\R2016a\extern\include\ 路径下创建gpu文件夹,并把E:\MATLAB\R2016a\toolbox\distcomp\gpu\extern\include\gpu 文件夹下的mxGPUArray.h文件复制进去。
修改解决方案”Caffe”的配置属性为Release、x64,如果以Debug形式进行编译,在后面编译Pycaffe时会有报错,因为编译Pycaffe时调用的库是release版本。
接着将libcaffe、caffe、matcaffe、pycaffe这个四个项目的属性
修改”将警告视为错误”为否,以及Release、x64。
接着选中libcaffe为启动项。
选择libcaffe进行编译,编译成功之后,在D:\caffe\Build\x64\Release目录下会有cudnn、hdf5、opencv等库文件。
编译caffe
选做部分:
修改anancoda的include中pyconfig.h文件部分如下
/* For an MSVC DLL, we can nominate the .lib files used by extensions */
#ifdef MS_COREDLL
# ifndef Py_BUILD_CORE /* not building the core - must be an ext */
# if defined(_MSC_VER)
/* So MSVC users need not specify the .lib file in
their Makefile (other compilers are generally
taken care of by distutils.) */
# ifdef _DEBUG
# pragma comment(lib,"python27.lib")
# else
# pragma comment(lib,"python27.lib")
# endif /* _DEBUG */
# endif /* _MSC_VER */
# endif /* Py_BUILD_CORE */
#endif /* MS_COREDLL */
...
#ifdef _DEBUG
//# define Py_DEBUG
#endif
我没有做以上修改也编译了pycaffe,不清楚后续使用会不会有问题。
选择caffe为启动项,注意Pycaffe,matcaffe和caffe三个项目的属性中的“将警告视为错误”是否设置为“否”,以及是否设置为Release、x64。
编译 ,编译成功之后,在D:\caffe\Build\x64\Release文件夹下会有caffe.exe文件,添加D:\caffe\Build\x64\Release到环境变量中,打开cmd,即可测试caffe。
安装matcaffe
设置matcaffe为启动项,注意Pycaffe,matcaffe和caffe三个项目的属性中的“将警告视为错误”是否设置为“否”,以及是否设置为Release、x64。
编译,编译成功后,D:\caffe\Build\x64\Release目录下会生成matcaffe文件夹,打开MATLAB,输入以下代码:
>> addpath('D:\caffe\Build\x64\Release\matcaffe')
>> savepath()
将matcaffe引入MATLAB工具箱
为了测试matcaffe,我们需要下载一个bvlc_reference_caffenet.caffemodel。
1. bvlc\_reference\_caffenet.caffemodel
下载路径为: http://dl.caffe.berkeleyvision.org/bvlc_reference_caffenet.caffemodel
2. 同时将该模型保存到caffe-master\models\bvlc_reference_caffenet目录下
3. 然后打开caffe-master\matlab\demo下面的classification_demo.m进行执行开是否有错,如果没有错则说明配置好了。
如果有报错,在classification_demo.m中添加
addpath('D:\caffe\Build\x64\Release\matcaffe');
安装pycaffe
设置pycaffe为启动项,注意Pycaffe,matcaffe和caffe三个项目的属性中的“将警告视为错误”是否设置为“否”,以及是否设置为Release、x64。
直接编译pycaffe,完成之后会生成pycaffe文件夹,将caffe文件夹拷贝到anacoda的Lib/site-pachages文件夹(E:\Anaconda2\Lib\site-packages)下,打开python测试。
如果报错
ImportError: No module named google.protobuf.internal
出现如上错误是因为缺少protobuf包,安装protobuf即可:
pip install protobuf
在此执行:
至此,caffe以及pycaffe、matcaffe已经全部安装成功。