Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译

参考链接:https://blog.csdn.net/u011947630/article/details/81878767

0. 编译环境

操作系统:Windows10

IDE: VS2013

GPU: NVIDIA GTX 1050Ti

1、 VS2013安装

官网地址:https://my.visualstudio.com/Downloads?q=Visual%20Studio%202013%20with%20Update%205

下载好后找一个win10+vs2013的教程,按照提示一步步安装即可。

2、matlab-R2014a安装

链接:https://pan.baidu.com/s/1NRddbqJ7i0xw64_mteeGLQ

提取码:zdfa

下载后找一个安装教程按照提示安装即可。

3、Cuda8.0安装

1)cuda8.0兼容的vs版本只有VS2013(本次安装采用)VS2015

2)cuda8.0各个系统版本在下面的博文里:

http://blog.csdn.net/u011669700/article/details/78622872

官方下载地址:https://developer.nvidia.com/cuda-80-ga2-download-archive

选择win10版本

3)注意事项:

1.安装时选择默认路径(不要做任何修改);

2.系统检查后,在第二步许可协议处选择自定义安装

3.安装完成后,打开命令行窗口,输入:nvcc -V如果能够显示版本信息,就表示安装成功。

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第1张图片

 

4、Cudnn5.1安装

1)官网地址:https://developer.nvidia.com/rdp/cudnn-archive

可能需要注册账号,按照要求注册,然后再次打开该地址,就可以选择cudnn版本下载了

注意:要选择 Download cuDNN v5.1 (Jan 20, 2017),for CUDA 8.0下载

2)或者百度网盘下载

链接:链接:https://pan.baidu.com/s/1xBdL4yA1CYzhYofqkyruIQ

提取码:d9s8

3)下载好后解压,可以看到包含一个文件夹 cuda里面由三个子文件夹 bin、include、lib

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第2张图片

4)然后打开本机的环境变量,找到系统变量中的CUDA_PATH的值,打开该位置

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第3张图片

 打开后文件如下:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第4张图片

5)可以看到,这里(路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0)也有lib,bin,include三个文件夹,于是我们需要将之前cudnn5.1解压得到的cuda文件夹里面的三个文件夹中的内容拷贝到这里的对应的lib,bin,include文件夹中(例如:cuda/bin/cudnn64_5.dll拷贝到上图中的bin里面),总共有三个文件需要拷贝,其中第三个在cuda/x64中。

到此现在我们的CUDA和cudnn就装好了~

 

5、caffe源代码下载+编译+测试

1)源码位置:https://github.com/microsoft/caffe

点击绿色按钮之后download zip就行了,得到一个压缩包,随便解压到一个地方就行了

 Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第5张图片

 

2)解压后得到caffe-master目录,点进去有一个windows文件夹

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第6张图片

3)进入windows文件夹,将其中的CommonSettings.props.example复制一份并改名为CommonSettings.props。

4)修改CommonSettings.props文件。因为先点击Caffe.sln,会自动启动vs2013,但是此时可能会出现的问题是libcaffe和test_all两个工程加载失败。原因是找不到cuda7.5因为我安装的是cuda8.0而文件默认是7.5的。

所以先修改CommonSettings.props文件后再重新启动Caffe.sln文件

5)点击右边的CommonSettings.props,修改这么几个内容

 Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第7张图片

  1.第7行改成false(表示不是在CPU上面,如果采用CPU则这里无需改动,还是true)

  2.第8行改成true(使用cudnn可以加快之后的运行速度,如果采用CPU则这里无需改动,还是false)

  3.第9行的CUDA版本(刚才装8.0)

  4.如果需要支持python或者matlab,那么对应的13、16行也要改,因为我安装了啊那conda3以及matlab,所以就修改了PythonDir和MatlabDir。

  5.最后是24行,将cuda文件夹的位置填进去。(也可不需要,有没写环境搭建是成功的情况)

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第8张图片

  6.第53行这里MatlabDir是自己电脑中matlab的安装地址,如果不知道,可以右键桌面快捷方式从属性中查看。

7.第55行IncludePath也改了,直接按照我的复制就可以,$(MatlabDir)\toolbox\distcomp\gpu\extern\include;

6)双击打开caffe-master\Windows下的caffe.sln,右击pycaffe,选择‘属性’,配置一下相关文件:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第9张图片

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第10张图片

 

7) 接下来,右键libcaffe工程,选择‘属性’,改为下面的样子:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第11张图片

  1.然后点击确定。

  2.右键libcaffe,点‘build’ 生成就行了。可能会比较慢,因为会从网上下载NugetPackages文件。如果想要运行快一点,

建议:修改libcaffe属性后,可以直接从网上下载NugetPackages文件

  链接:https://pan.baidu.com/s/1yQ00H9BC5iFM4-9M2MJsGw

  提取码:97s0

  3.NugetPackages文件夹和caffe-master文件夹放在同一个目录下即可。

4.再右键libcaffe,点‘生成, 这样生成libcaffe.lib,但是不会从网上下载NugetPackages文件,速度比较快。

 

5.编译成功和运行需要的文件都会存放在Build\X64\Relase下面,如图:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第12张图片

前面已经提示是先编译的libcaffe,在solution上面右击选择属性(properties)。可以发现默认选择的是单任务,只编译libcaffe。这就是为什么之前默认先编译libcaffe。如下图:

 

接下来,可以选择更多的任务来编译。类似地,我们接下来也可以只选择caffe来编译,同样的要注意release和X64. 如图:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第13张图片

编译caffe中遇到问题:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第14张图片

  1. 解决第一个问题:Error 8533      error C1083: Cannot open include file: 'io.h': No such file or directory     D:\Anaconda3\include\pyconfig.h     59   1     caffe

原因参照链接:https://stackoverflow.com/questions/40018405/cannot-open-include-file-io-h-no-such-file-or-directory/43098806#43098806

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第15张图片

在目录“C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt”中(windows 10 sdk,下载安装的路径为:https://developer.microsoft.com/en-us/windows/downloads/windows-10-sdk)存在文件”io.h”,只需将其加入到caffe的配置include中即可:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第16张图片

 

  1. 解决第二个问题:Error 935 error C1083: Cannot open include file: 'caffe/caffe.hpp': No such file or directory       D:\caffe\caffe-master\tools\caffe.cpp 15   1     caffe

在目录“D:\caffe\caffe-master\include”中,存在文件”caffe.hpp”,只需将其加入到caffe的配置include中即可:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第17张图片

  1. 解决第三个问题:

Error 8534 error LNK1112: module machine type 'X86' conflicts with target machine type 'x64' D:\caffe\caffe-master\windows\caffe\msvcprt.lib(MSVCP120.dll) caffe

原因:错误的将“C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib”加入到caffe的配置include中,不应添加,该目录中的库是32 位的与要编译的64位的环境平台相互冲突。

  1. error LNK1104: cannot open file 'python27.lib' D:\caffe\caffe-master\windows\upgrade_solver_proto_text\LINK,原因是:网上下载NugetPackages包中的boost_python2.7-vc120.1.59.0.0文件对应的是python2.7的版本,另外pycaffe基于python2.7,所以我们要在在已有Anconda3环境下安装python2虚拟环境.

(1)安装Anaconda3后,自带Python3.5,但我们有时候还需要一个Python2.7来执行一些老的脚本程序,此时可以给Anaconda3再创建一个新的独立的python2.7的环境。调出Anaconda3的命令行工具Anaconda Prompt,如下图所示,执行命令:$ conda create -n py2 anaconda python=2.7

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第18张图片

              (2) 其中py2就是新的python2.7环境的名称,接下来提示你是否安装一大堆的包!全部选择yes!安装成功界面如下:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第19张图片

如何使用python2.7环境?命令如下:

Windows: activate py2

Linux and Mac OS X: source activate py2

如何结束python2.7环境:

Windows: deactivate

Linux and Mac OS X:source deactivate

想要删除指定路径下的虚拟环境,使用如下的命令:

conda remove--prefix=D:\Anaconda3\envs\py2 –all

              (3) python2虚拟环境是安装在D:\Anaconda3\envs\py2目录下的!

我们现在来编译pycaffe。首先需要确认配置文件CommonSettings.props的参数中第13、48行已修改,如下:

             true

D:\Anaconda3\envs\py2

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第20张图片

(4)最终caffe所有的include和lib的配置如下图:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第21张图片

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第22张图片

8)右键工程caffe,点击第一个‘生成’。 最后生成caffe.exe则编译成功,文件所在的位置D:\caffe\caffe-master\Build\x64\Release

9)右键——》解决方案“caffe”(16个项目),项目生成的文件就在D:\caffe\caffe-master\Build\x64\Release里面(也可以跳过步骤7直接执行这步)

 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第23张图片

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第24张图片

 

 

6. 测试

下面通过一个最简单的网络结构lenet来对刚才安装的caffe进行测试。

1) 首先去官网: http://yann.lecun.com/exdb/mnist/ 下载mnist数据集。首先进入眼帘的是:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第25张图片 

 

在侧边可以看见有4个文件可以下载:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第26张图片

 

 

下载后解压到D:\Project\caffe-master\data\mnist,如下图所示:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第27张图片

 

 

(2)在caffe根目录下,新建一个create_mnist.bat,里面写入如下的脚本: 

 

此时如果立即双击该脚本文件,会报错,因为我们还没有生成convert_mnist_data.exe 这个可执行文件,因此我们又需要执行前面类似的操作,编译convert_mnist_data 这个工程,编译完成之后,在Build\x64\Release\ 中会有如下的文件: 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第28张图片

 

此时我们可以双击create_mnist.bat 这个脚本文件,仍然出错,如图: 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第29张图片

 

仔细检查,原来是要在data\mnist\ 里面还需要建立两个子目录,把相应的数据文件移动到子目录里。重新双击create_mnist.bat这个脚本文件,此时如图: 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第30张图片

 

在D:\Project\caffe-master\examples\mnist下面生成相应的lmdb数据文件,如图: 

 

(3)打开D:\Project\caffe-master\examples\mnist\lenet_solver.prototxt,定位到最后一行改为solver_mode:GPU,此处我们采用GPU训练。如下图所示: 

 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第31张图片

接下来我们要修改 lenet_train_test.prototxt文件,先做个备份,如图: 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第32张图片

 

打开文件lenet_train_test.prototxt,将其中的source选项的引号中加入“./”,如图: 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第33张图片

 

(4)在caffe根目录下,新建train_mnist.bat,然后输入如下的脚本: 

 

保存之后如图: 

 

然后双击运行,就会开始训练,训练完毕后会得到相应的准确率和损失率。训练如下: 

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第34张图片

 

到此为止,我们完成了所有的环境搭建和demo测试。

7.pycaffe编译

Include和lib配置如下图:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第35张图片

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第36张图片

 

 

设置编译方式为release,x64,设置pycaffe为启动项目,设置“将警告视为错误”为false否!!!设置ctrl+f5开始生成!编译完成以后,会生成一个:caffe-master\caffe-master\Build\x64\Release\pycaffe文件夹,进入以后如下图所示:

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第37张图片

 

接着将那个caffe文件夹复制到python2虚拟环境根目录下:D:\Anaconda3\envs\py2\Lib\site-packages

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第38张图片

 

最后,打开Anconda Prompt,切换到Python2环境(activate py2),然后就可以尝试:import caffe

出现报错!ImportError:No module named google.protobuf.internal直接在python2虚拟环境下执行pip install protobuf即可!

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第39张图片

Caffe在win10+VS2013+GPU (cuda8.0+cudnn5.1) /CPU +Anaconda3-4.2.0(虚拟环境py2)+Matlab-R2014a版本编译_第40张图片

你可能感兴趣的:(caffe)