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\
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
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
- 1
- 1
安装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\Scriptsc:\Python35\
- 1
- 2
- 3
- 1
- 2
- 3
安装后,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
- 1
- 1
从 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
- 1
- 1
安装其他组件
pip3 install wheel matplotlib six protobuf scikit-image pydot
- 1
- 1
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
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
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;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
运行正常。
05 关于调试
主要功能项目在tools 目录下。
caffe.bin生成 caffe_d.exe
如果要运行caffe自己提供的测试用例,项目入口是runtest工程。运行runtest工程。跑全部测试用例。
具体测试内容在test.testbin工程。