caffe搭建--caffe- win10 vs2015 编译(支持GPU)--注意在cmake的时候需要根据情况仔细修改配置

--http://blog.csdn.net/longji/article/details/60964998

注意: 在cmake的时候需要根据情况仔细修改配置,比如,如果gpu的能力不足3.0的话,在windows上就不能开启cudnn,应当设置为OFF,否则后面运行的时候将开启cudnn,但是事实上硬件不能支持,倒时候还得回来重新修改配置重新编译。

01 必备环境

win10企业版,有GPU的硬件。 
vs2015 update3、cmake 3.7.2。 
Git、python3.5.3、CUDA8.0、cuDNN5.1。

cuda_8.0.61_win10.exe下载地址: 
http://developer.download.nvidia.com/compute/cuda/8.0/secure/Prod2/local_installers/cuda_8.0.61_win10.exe?autho=1487739113_9ad462b1e508ab177490b79065da6a6a&file=cuda_8.0.61_win10.exe 
安装后有如下环境变量:

CUDA_PATH=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0
CUDA_PATH_V8_0=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv8.0
NVCUDASAMPLES8_0_ROOT=C:ProgramDataNVIDIA CorporationCUDA Samplesv8.0
NVCUDASAMPLES_ROOT=C:ProgramDataNVIDIA CorporationCUDA Samplesv8.0
NVTOOLSEXT_PATH=C:Program FilesNVIDIA CorporationNvToolsExt

cuDNN下载需要注册个账号。下载cudnn-8.0-windows10-x64-v5.1-zip后解压到 C:Program Filescuda 
https://developer.nvidia.com/compute/machine-learning/cudnn/secure/v5.1/prod_20161129/8.0/cudnn-8.0-windows10-x64-v5.1-zip

C:Program Filescuda下有bin、include、lib3个目录。 
设置环境变量

CUDNN_ROOT=C:Program Filescuda

安装pthon3.5.3及必要组件 
pytho3.5.3下载地址:https://www.python.org/ftp/python/3.5.3/python-3.5.3-amd64.exe 
安装到c:python35。安装时选择设置环境变量、勾选pip。 
安装后,环境变量path中会加入如下两项(如果你安装了其他版本的Python,请确保这个环境变量在path的较前位置)。

# %path%环境变量中有如下两行
c:Python35Scripts
c:Python35

安装后,C:Python35Libsite-packages只有README.txt文件。后面使用pip货pip3安装的python组件会被默认安装到 
C:Python35Libsite-packages 目录。

根据 https://github.com/BVLC/caffe/tree/windows 官网描述:

安装必要的python工具组件: 
在网址 http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy 
下载scipy-0.18.1-cp35-cp35m-win_amd64.whl 
保存到E:Work201703caffe 
安装scipy:

pip3 install E:Work201703caffescipy-0.18.1-cp35-cp35m-win_amd64.whl

从 http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy 
下载 Numpy+MKL, 
选择 numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl, 
下载到E:Work201703caffe 
安装 Numpy+MKL:

pip3 install E:Work201703caffe
umpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl

安装其他组件

pip3 install wheel matplotlib six protobuf scikit-image pydot

02 caffe源码下载

官网:http://caffe.berkeleyvision.org/ 
github:https://github.com/BVLC/caffe/ 
下载源码:

cd d:gitDeepLearning
git clone https://github.com/BVLC/caffe.git
cd caffe
git branch -a
git checkout windows

03 设置CMake-gui,生成vs工程文件

设置 源代码路径:D:/git/DeepLearning/caffe 
设置 生成build路径:D:/git/DeepLearning/caffe/build/x64 
选择生产vs工程的版本:Visual Sutdio 14 2015 Win64 
tooset 默认值,空 
勾选[Use default native compilers] 
过程有下载依赖,时间较长。 
下载依赖库

这个过程主要是下载如下内容: 
caffecmakeWindowsDownloadPrebuiltDependencies.cmake文件中指定的文件: 
https://github.com/willyd/caffe-builder/releases/download/v1.0.1/libraries_v140_x64_py35_1.0.1.tar.bz2。 
依赖库url

下载后压缩包放在camke-gui指定的编译目录下。D:gitDeepLearningcaffeuildx64libraries_v140_x64_py35_1.0.1.tar.bz2

如果该目录存在此文件,再次点击[Configure]按钮不会重复下载。该文件保存在亚马孙云上,下载速度很慢,建议手工下载。很可能需要尝试多次。

压缩包下载完成,或者手动下载后再次Configure时,会出现如下BLAS配置错误。把BLAS属性设置为OPEN。 
设置BLAS

把BLAS属性设置为OPEN。 
勾选Build_python,使caffe支持python接口。 
勾选Build_python_layer,使caffe支持python语言自定义层。 
设置python接口

设置python_version属性为3,指定python版本是3.0+。 
这里写图片描述

最后还有几个Boost_PYTHON-PY*_LIBARY_*选项错误。忽略。 
这里写图片描述

点击[Generate]按钮,生成vs工程文件。

04 vs2015编译

用vs2015打开 D:gitDeepLearningcaffeuildx64Caffe.sln。编译整个Caffe.sln下面的工程。共44个工程。 
编译成功后,生成INSTALL工程,这样完整的debug版本就安装到D:gitDeepLearningcaffeuildx64install目录下了。 
这里写图片描述

运行caffe_d.exe -version 或者-help。运行正常。 
这里写图片描述

编译并安装release版本后,可以测试下python接口。 
运行如下python文件 
D:gitDeepLearningcaffeuildx64installin est01.py

import numpy as np;
import sys,os;
caffe_root='D:/git/DeepLearning/caffe/build/x64/install/';
sys.path.insert(0, caffe_root + 'python');
import caffe-d as ca; # 引入自己的caffe的python接口
print("######"); # python打印6个#
import matplotlib.pyplot as plt;
plt.plot([1,2,3,4], [1,2,3,4]);
plt.show();  # 画一条45°直线
ca.set_mode_gpu(); #设置使用GPU,ca.set_mode_cpu();

import caffe.io as cai;
import caffe.net_spec as can;
import caffe.classifier as cac;
import caffe.draw as cad;  # 这个文件需要安装pydot组件
import caffe.coord_map as caco;

运行正常。 
这里写图片描述

05 关于调试

主要功能项目在tools 目录下。 
caffe.bin生成 caffe_d.exe 

如果要运行caffe自己提供的测试用例,项目入口是runtest工程。运行runtest工程。跑全部测试用例。 
具体测试内容在test.testbin工程。 

原文地址:https://www.cnblogs.com/leoking01/p/6951750.html