(原+转)win7上编译caffe支持python及matlab

转载请注明出处:

http://www.cnblogs.com/darkknightzh/p/7126126.html

参考网址:

https://github.com/happynear/caffe-windows

使用的是参考网址中的caffe。由于电脑没有独显,因而使用cpu。首先下载该源码,而后顺序如下:

1. 将caffe-windows-ms\windowsCommonSettings.props.example改名为CommonSettings.props

2. 由于只编译cpu版本,因而将

<CpuOnlyBuild>false</CpuOnlyBuild>
<UseCuDNN>true</UseCuDNN>
<UseNCCL>true</UseNCCL>

改为

<CpuOnlyBuild>true</CpuOnlyBuild>
<UseCuDNN>false</UseCuDNN>
<UseNCCL>false</UseNCCL>

3. 将

<MXNetSupport>true</MXNetSupport>

改为

<MXNetSupport>false</MXNetSupport>

4. 由于需要python支持,因而修改python的路径。使用的是anaconda2,因而将

<PythonDir>D:\Anaconda2\</PythonDir>

改为

<PythonDir>C:\ProgramData\Anaconda2\</PythonDir>

5. 打开Anaconda Prompt,输入:

conda install --yes numpy scipy matplotlib scikit-image pip
pip install protobuf

6. 由于需要matlab支持,因而修改matlab的路径(网址中已经将MatlabSupport设置为true了)。将

<MatlabDir>C:\Program Files\MATLAB\R2016a</MatlabDir>

改为

<MatlabDir>C:\Program Files\MATLAB\R2014b</MatlabDir>

7. 使用vs2015打开caffe-windows-ms\windowsCaffe.sln

8. 编译工程(可以只编译需要的。我这边。。。额。。。直接编译了整个工程)。由于只编译cpu版本,我这边编译速度还好吧。据说编译gpu版本,速度比较慢。。。

9. 对python支持的设置(下列方法二选一)。我这边使用的是a,没有测试b:

a 在环境变量中增加PythonPath,路径为<caffe_root>\Build\x64\Release\pycaffe

b 将<caffe_root>\Build\x64\Release\pycaffe\caffe拷贝到<python_root>\lib\site-packages

10. 对matlab的支持(下面两步都需要):

a add the generated matcaffe folder to Matlab search path
b add <caffe_root>\Build\x64\Release to your system path

此处说明一下:

b的好解释,就是将<caffe_root>\Build\x64\Release增加到Path的环境变量中。更改环境变量后,最好重启一下电脑。

对于a,说是将生成的matcaffe文件夹增加到matlab的search path中,实际上,我这边该工程生成的caffe_.mexw64路径为D:\caffe-windows-ms\matlab\+caffe\private,我最开始以为将这个文件夹增加到matlab的search path中,但是matlab总会提示“无法将方法文件夹(以’@’开头的文件夹)或专用文件夹添加到matlab搜索路径中”,如下图所示。实际上,添加的路径应该是D:\caffe-windows-ms\matlab。这样就不会出现下面的错误了。

11. 之后就是测试程序了。

caffe.reset_all();
caffe.set_mode_cpu();
gpu_id = 0;  % we will use the first gpu in this demo
% caffe.set_device(gpu_id);
net = caffe.Net('deploy.prototxt', 'model.caffemodel', 'test');

我这边就不会提示有错误了。

如果caffe设置的有问题,matlab中会提示:未定义变量”caffe”或类“caffe.reset_all”,如下图所示。在搜索一下吧。。。

 

posted on 2017-07-06 14:20  darkknightzh  阅读(2486)  评论(2编辑  收藏  举报

导航