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 Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
CUDA_PATH_V8_0=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
NVCUDASAMPLES8_0_ROOT=C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0
NVCUDASAMPLES_ROOT=C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0
NVTOOLSEXT_PATH=C:\Program Files\NVIDIA Corporation\NvToolsExt\
cuDNN下载需要注册个账号。下载cudnn-8.0-windows10-x64-v5.1-zip后解压到 C:\Program Files\cuda
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 Files\cuda下有bin、include、lib3个目录。
设置环境变量
CUDNN_ROOT=C:\Program Files\cuda
安装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:\Python35\Scripts\
c:\Python35\
安装后,C:\Python35\Lib\site-packages只有README.txt文件。后面使用pip货pip3安装的python组件会被默认安装到
C:\Python35\Lib\site-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:\Work\201703\caffe\
安装scipy:
pip3 install E:\Work\201703\caffe\scipy-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:\Work\201703\caffe\
安装 Numpy+MKL:
pip3 install E:\Work\201703\caffe\numpy-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:\git\DeepLearning
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]
过程有下载依赖,时间较长。
这个过程主要是下载如下内容:
caffe\cmake\WindowsDownloadPrebuiltDependencies.cmake文件中指定的文件:
https://github.com/willyd/caffe-builder/releases/download/v1.0.1/libraries_v140_x64_py35_1.0.1.tar.bz2。
下载后压缩包放在camke-gui指定的编译目录下。D:\git\DeepLearning\caffe\build\x64\libraries_v140_x64_py35_1.0.1.tar.bz2
如果该目录存在此文件,再次点击[Configure]按钮不会重复下载。该文件保存在亚马孙云上,下载速度很慢,建议手工下载。很可能需要尝试多次。
压缩包下载完成,或者手动下载后再次Configure时,会出现如下BLAS配置错误。把BLAS属性设置为OPEN。
把BLAS属性设置为OPEN。
勾选Build_python,使caffe支持python接口。
勾选Build_python_layer,使caffe支持python语言自定义层。
设置python_version属性为3,指定python版本是3.0+。
最后还有几个Boost_PYTHON-PY*_LIBARY_*选项错误。忽略。
点击[Generate]按钮,生成vs工程文件。
04 vs2015编译
用vs2015打开 D:\git\DeepLearning\caffe\build\x64\Caffe.sln。编译整个Caffe.sln下面的工程。共44个工程。
编译成功后,生成INSTALL工程,这样完整的debug版本就安装到D:\git\DeepLearning\caffe\build\x64\install目录下了。
运行caffe_d.exe -version 或者-help。运行正常。
编译并安装release版本后,可以测试下python接口。
运行如下python文件
D:\git\DeepLearning\caffe\build\x64\install\bin\test01.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工程。
每一个不曾起舞的日子,都是对生命的辜负。
But it is the same with man as with the tree. The more he seeks to rise into the height and light, the more vigorously do his roots struggle earthward, downward, into the dark, the deep - into evil.
其实人跟树是一样的,越是向往高处的阳光,它的根就越要伸向黑暗的地底。----尼采