(全面 经典 管用)Windows7 64位+Cuda6.5+vs2012 的caffe配置历程

本文转自 http://blog.csdn.net/u010402786/article/details/49469879

Cuda6.5安装

备注:已经装好cuda的请略过,往下看。 
记得没有VS2012的一定要先装VS。否则:安装后打开VS2012新建项目不显示NIVIDA解决方案。记住记住记住!重要的事情说三遍! 
第一步:安装文件的下载,直接去官网就下载就可以。现在有cuda7.0了。 
cuda 
直接双击exe文件,弹出后,首先会监测一下你的运行环境,如果找不到Nividia对应的显卡设备,他会提示你是否要继续安装。这里面nvidia的显卡,最起码也是8800以上的,要不是无法编写CUDA的。千万不要电脑上面是intel或者AMD的显卡,却要编写cuda,除非你有钱买一个cuda-x86这个编译器。 
第二步:和正常安装软件步骤一样,首先弹出的对话框直接OK就行,这个是CUDA的一些安装文件,位置在哪无所谓。会监测你的电脑是否支持cuda的搭建,接下来一步步的走。 
第三步: 
这里写图片描述 
博主强烈推荐选择自定义安装 
博主当初就因为选了精简安装,没安装上SDK。 
安装的位置,推荐自己建三个好找的文件夹,不用他默认的路径,免得稍后配置环境变量麻烦。 
这里写图片描述 
下一步直接安装就行,等待过程漫长,喝杯茶吧 
第四步: 
接下来配置cuda的环境变量,默认安装好后,他会自动帮你设置好2个环境变量,但是最好还自己添加下其他的几个,方便日后配置vs使用。有两个是默认的环境变量,只需添加下面四个即可:

<code class="hljs autohotkey has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">
CUD<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">A_BIN</span>_PATH  <span class="hljs-var_expand" style="box-sizing: border-box;">%CUDA_PATH%</span>\bin

CUD<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">A_LIB</span>_PATH  <span class="hljs-var_expand" style="box-sizing: border-box;">%CUDA_PATH%</span>\lib\Win64

CUD<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">A_SDK</span>_BIN  <span class="hljs-var_expand" style="box-sizing: border-box;">%CUDA_SDK_PATH%</span>\bin\Win64

CUD<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">A_SDK</span>_LIB  <span class="hljs-var_expand" style="box-sizing: border-box;">%CUDA_SDK_PATH%</span>\common\lib\Win64

<span class="hljs-label" style="box-sizing: border-box;">CUDA_SDK_PATH  C:</span>\cuda\cudasdk\common</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul>

第五步:检测Cuda的安装成功与否。 
首先启动cmd DOS命令窗口(博主的cuda安装到c:\cuda文件夹下) 
  默认进来的是c:\users\Admistrator>路径,输入 cd .. 两次,来到c:目录下输入dir 找到安装的cuda文件夹 
  还是直接上图吧,方便清晰: 
  这里写图片描述 
  这里写图片描述 
  这里写图片描述 
至此,万里长征第一项基本成功了。(如果没有安装成功,重新再装下) 
最后一步:(这段偷懒直接复制的,图里面的cuda5.5自己当作cuda6.5就好) 
5 最后就是VS的配置了 
  5.1 启动VS2012 
  5.2 新建一个win32的控制台工程,空的。 
这里写图片描述
这里写图片描述 
 5.3 右键源文件文件夹->新建项->选择cuda c/c++->新建一个以.cu结尾的文件  
这里写图片描述
5.4 右键工程-》生成自定义-》选择cuda生成 
这里写图片描述 
  5.5 右键test.cu-》属性-》选择cuda c/c++编译器 
这里写图片描述
  5.6 右键工程-》属性-》链接器-》常规-》附加库目录-》添加目录 $(CUDA_PATH_V5_5)\lib\$(Platform); 
这里写图片描述
  5.7 在链接器-》输入中添加 cudart.lib 
这里写图片描述

  5.8 在工具-》选项-》文本编辑器-》文件扩展名-》添加cu \cuh两个文件扩展名 
这里写图片描述

至此,编译环境的相关搭建就完成了。

分——————————–割———————————线 
分——————————–割———————————线

Caffe安装

老规矩,按照步骤慢慢来,面包会有的!

第一步:首先去http://download.csdn.net/detail/yangkequn/8108035下载,这个Caffe里面有很多的lib,是已经编译好了的。CSDN没有积分的可以私信博主,给你发邮箱去! 
然后去https://github.com/niuzhiheng/caffe下载原作者的Caffe! 
为什么要下载两个Caffe工程呢?因为1中的Caffe虽然是编好的,有各种lib和include的,但是没有%caffe_path/caffe/build/MSVCmex(其中%caffe_path为自己的路径)这个工程,这个工程用来编译Matlab接口的。所以,下载2的caffe就是要这个工程文件。

第二步:将MSVCmex这个工程复制到1中的caffe/build里面,用VS2012打开工程,直接运行发现不能编译。修改如下用editplus(当然任何编译器都可以,直接在VS里面也可以修改)打开matcaffe.vcxproj中,把里面所有的cuda6.0改成cuda6.5,之后把其中所有的C:/programme/matlab改为你自己的matlab地址。保存。当然部分路径还是需要根据自己的情况全部修改。(比如cuda的路径一般也是需要修改的,博主添加cuda的路径为:C:\cuda\cudatoolkit\lib\x64)接下来你就可以编译matcaffe.sln这个文件了。但是问题来了!会出错的!不是直接就可以的! 
不拐弯抹角了,直接正确的修改有以下几项(血泪史): 
①在vs2012的工程中,matcaffe.cpp中的这一行init_key=random(); // NOLINT(caffe/random_fn)编译过程中出错了,改成了init_key=rand(); // NOLINT(caffe/random_fn) 就可以正常编译了。 
②CUDA编译报错问题:error MSB3721这个是因为编译的路径中存在中文路径,只需要把中文路径改成英文路径即可。 
③编译出错:提示找不到各种.h文件。这是因为你没有把include的路径添加到附加包含目录中。 
这里写图片描述
这样找不到头文件这个问题就解决了。 
④出现error C2977: “std::tuple”: 模板 参数太多 g:\caffe\caffe for windows vs2012\src\gtest\gtest.h的类似的错误,如下图: 
这里写图片描述 
两种解决办法: 
第一种打开“解决方案资源管理器”,右键打开项目“属性”,在C/C++ –> “预处理器”–> “预处理定义”中增加以下行即可: 
_VARIADIC_MAX=10; 
另外一种,用代码编译器打开G:\Caffe\Caffe For Windows\src\gtest文件夹下的gtest.h,增加一下行即可:

<code class="hljs cs has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#<span class="hljs-keyword" style="box-sizing: border-box;">define</span> _VARIADIC_MAX=10;</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>

⑤生成解决方案停止在caffe.pb.h remains the same as before这句话不动了。其实这个不是错误,是人家还在编译中,需要等待,只要不报错,就等待就行。 
⑥又一个错误error C1083: 无法打开包括文件:“mex.h”: No such file or directory g:\caffe\caffe for windows vs2012\matlab\caffe\matcaffe.cpp 
http://blog.sina.com.cn/s/blog_7e2e98ad0101hd3c.html 
查看上面这个博客 ,添加相关路径。上几个图:注意图中黑体部分 
这里写图片描述
这里写图片描述
这里写图片描述
差点忘了:记得把Matlab的安装目录 和bin/include添加到环境变量中去,将caffe for windows下的将3rdparty/bin文件夹加到环境变量的PATH中。 
⑦又一个错误error LNK2001: 无法解析的外部符号 “__declspec(dllimport) public 
这个错误应该是依赖库的问题,上面那些都配置好理应没有问题的。查资料查资料,最后也是最重要的,记得将平台改为X64的。许多文档中没有指出来! 
这里写图片描述
这里写图片描述
注意字符集:使用Unicode字符集

再大胆并且抱有希望的重新生成解决方案一次吧! 
这里写图片描述

终于终于OK了!编译了36分钟!

最后: 
编译完成后需要将caffe-windows\bin中所有的dll 放到matlab\caffe中,编译完成后并没有把所有的dll都移入。

编译完成后:测试 
进入matlab2013b,cd到caffe/matlab/caffe,输入im = imread(‘peppers.png’); 
[scores, maxlabel] = matcaffe_demo(im,1); 
如果提示错误,可能是在examples/imagent没有训练集文件caffe_reference_imagenet_model,网上能够下载到。

分——————————–割———————————线 
分——————————–割———————————线

至此本文结束了,如果有什么安装过程中遇到的问题可以私信博主。另外转载请注明出处,虽然网上安装教程一大把,但是如果都那么顺利,我也没必要写这篇博客了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值