Win7x64+cuda8.0+ Microsoft caffe VS2013配置记录

来源:互联网 发布:知乎怎么设置隐私 编辑:程序博客网 时间:2024/06/04 19:06

感觉这1080和CUDA8又是坑,Caffe这么难配,果然是比不上别的框架。

  配完之后,想了想我佛慈悲,分享一下配置过程,功德无量。。。

  主要 参考了: 

  win10 + gtx1060 + cuda8.0 + caffe + vs2013

  Caffe常见问题解决:NuGet Error,无法打开输入文件“opencv_calib3d240d.lib” 

  【caffe-Windows】微软官方caffe之 matlab接口配置

  Caffe配置---配置Windows版 Caffe

  windows7下配置caffe+matlab2016 无GPU(详细教材)

  windows 10 下 Caffe + Matlab 部署

  以及各位博主的分享,以及谢谢网友  @麦迪 @卜居 @永远的tea @ScorpioDoctor的帮助。

  整体总结:

1)如果你的显卡支持cuda7.5,直接用happynear的就好了,没必要折腾。

2)可以先试试,NuGet里安装一遍OpenCV,自己完全弄过opencv太折腾了。虽然整过了,但是感觉其实这Opencv彻底乱掉了,如果谁有精力,可以试试自己再独立整Opencv2.4.10,感觉这样乱的更整齐一点。

3)微软的Caffe是可以使用cudnn5的,再说现在官网已经没有了cudnn4了,你也只能下载cudnn5。不过其实只是看看代码,不用cudnn也行。其实只是看代码用cpu编过就行了。

4)微软已经使得Windows下装Caffe简化了很多,但是这玩意还是有点看人品,

5)

  • 1、安装NVI驱动和CUDA8.0

  之前安装的是显卡自带的驱动,但是这驱动安装好cuda之后,就只能看到一块显卡了,这次从官网下载的驱动,安装后之后,还是可以看到两块显卡。安装的经验就是,安装好NVI驱动之后,直接把NVIDIA GeForce Experience卸载掉,然后再安装CUDA。

  

  然后查看

  

  也可以运行 卜居给的bat : "C:\Program Files\NVIDIA Corporation\NVSMI\nvidia-smi.exe" -l

  

  这次可以看到两块显卡了。

  最后保险起见,继续测试一把CUDA。

  

  

  完全没问题,CUDA安装成功。

  • 2、下载Microsoft Caffe、cuDNN

  把压缩包都解压到同一个文件夹下面,最好让caffe-master文件夹下面直接就是文件,没有二级目录了。

  

  开启NuGet功能,在工具→扩展和更新中可以找到并且安装,不过发现这其实是和VS Ultimate一起就安装好了。

  

  • 3、配置

  打开caffe-master\windows文件夹,复制CommonSettings.props.example,再将CommonSettings.props.example.副本 重命名为CommonSettings.props(需要先修改配置文件后再打开项目,不然libcaffe和test_all没有加载成功,又会出现新的错误  error C1083: 无法打开包括文件: “caffe/proto/caffe.pb.h”:  No such file or directory)。  

  用VS打开此配置文件,按照自己的配置进行设定,由于显卡是1080,使用的是CUDA8.0,所以CudaVersion需要更改。然后就是打开python和matlab的支持接口。CudaArchitecture写入的是compute_60,sm_60,尽管1080的计算能力是6.1,但是查看了CUDA自带的sample上面的接口显示的是compute_60,sm_60,所以写入这个,因为当时其实有计算能力是2.1的显卡,但是接口都是compute_20,sm_20。

  在运行cuda sample的时候,其实就可以看到各种不同的CudaArchitecture,可以查看自己显卡的计算能力,然后找到对应的CudaArchitecture。

  

  cuda路径是默认搜索的。

  cudnn的路径可以自己在<CuDnnPath>//<CuDnnPath>下重新指定,只需要指定cuda文件夹的路径即可,因为配置文件会自动加上cuda。

  

  

  还需更改python和matlab的路径,python确保下一级中有python.exe即可。python直接用Anaconda的python2.7版本。这样更方便。 

  后面可能会出现要注释xml的情况:<!-- 这里写注释-->

  打开 CAFFE_ROOT\windows\Caffe.sln,注意这个VS要获得管理员权限 。

  

  解决方案后中右击每一个项目,属性->C/C++,把“警告等级”调整为等级3,把“将警告视为错误”改成否
  项目→属性→C/C++→常规→把“警告等级”调整为等级3 将警告视为错误 设置为否 
  如果不设置的话在编译boost库的时候会由于文字编码的警告而报错

  

  先把编译器切换到Release x64.然后点击本地windows调试器,nuget会先下载安装需要的一些库文件,下载完后后继续编译操作,中间可能会出现一些报错。 

  首先编译libcaffe,在libcaffe上右键生成就可以了,这样就会在最开始的Caffe和cuda的文件夹新建一个NugetPackages文件夹,包含所有依赖的库。

  然后我这显示错误

  

  https://github.com/Microsoft/caffe/issues/78,

  • convert_cifar_data
  • convert_imageset
  • convert_mnist_data

  这三个项目,但是我试了没有用。

  然后看到了Windows+VS2013爆详细Caffe编译安装教程 下的评论

  

  最后看到了博文 win10 + gtx1060 + cuda8.0 + caffe + vs2013 Caffe常见问题解决:NuGet Error,无法打开输入文件“opencv_calib3d240d.lib” 以及在热心网友 错过的帮助下,感觉其实这就是opencv的问题,但是对于nuget已无信心,还是自己下载比较方便,感觉这个nuget下载可能是看网速的,我之前nuget自行下载的opencv.2.4.10只有67M,差不多是 卜居 下载的137M的一半,然后自己用 卜居的opencv替换掉自己的还是没用。没办法只能自己下载,然后重新配置过了。其实配置完,才感觉也就是配置一个opencv的问题,应该没那么难。主要是万万没想到nuget或者是opencv居然不靠谱。

  首先下载opencv

  

  为了方便以后查找,我也是解压到了NugetPackages文件夹下面

  配置Opencv的到环境变量下,感觉可能就是opencv的环境变量问题,导致了这opencv的问题。

  

  

  而我找了下,发现Nuget自动下载的opencv里面是没有x86的,只有x64。

  在任意项目下选择管理NuGet程序包,然后找到Opencv,取消掉关联。

  

  然后可以看到,每个项目下的packages.config里面就都没有了opencv。

  

  对每个工程,都配置单独配置opencv,感觉这样其实配置还是有点折腾,如果可以的话,还是用Nuget搞搞,就行了。

  1、选定项目→生成依赖项→生成自定义,去掉Opencv前面的勾。

  

  libcaffe里面整下C/C++常规,就是弄下头文件。

  

  其余的

  

  加上libcaffe.lib和OpenCV的库。

  

  可以先生成caffe和libcaffe看看,能不能跑跑mnist,如果能跑,说明Caffe基本搞定,然后其它的接口再都配配Opencv。

  • 4、配置python接口

  主要是pycaffe,也要配置好opencv,然后注意安装的库为Anaconda2,就没问题了。

  • 5、配置Matlab接口

  Microsoft 的github更新了matcaffe中的caffe_.cpp文件,第16行添加了对gpu/mxGPUArray.h的引用

  

  

  

  修改配置文件CommonSettings.props,添加路径

  

  • 6、测试

  生成成功后

  

  可以再运行查看

  

  发现我这还是有些错误的

  

  

   上面这两张图片虽然是在C盘,但不知道为啥打不开,其它的不知道啥问题。不管了。

  • 7、继续配置Matlab接口

  依据官网

  

  

   然后将".\caffe-master\Build\x64\Release"(如果你的caffe.sln是在Debug下生成的,就把Release换成Debug)加入系统变量path,以供程序找到一些相关的dll模块(配置好环境变量最好重启下,不少人说这需要重启)。

   

  从网盘→Models→BVLC_CAFFENET→下载 bvlc_reference_caffenet.caffemodel放到

  

  在demo文件夹下,新建test.m

  

  运行出错

  把这个\Build\x64\Release\matcaffe\+caffe\private这个文件夹里面的东西全都拷贝到\matlab\+caffe\private覆盖

  

  等于左边这文件只能保留一个caffe_.cpp,再次运行test.m

1
2
3
4
5
6
7
8
9
10
close all;clc;clear;
 
im = imread('../../examples/images/cat.jpg');
figure;imshow(im);
scores = classification_demo(im, 1);
[score, maxlabel] = max(scores);
 
figure;plot(scores);
axis([0, 999, -0.1, 0.5]);
grid on

  

  我这就成功了,如果还有问题的,貌似需要把C:\Caffe\caffe-master\Build\x64\Release下的所有dll文件,拷贝到C:\Caffe\caffe-master\matlab\+caffe\private

  • 8、继续配置Python接口

  还是首先依据官网 

  

   在环境变量的用户变量中,新建用户变量,变量名“PythonPath”,变量值“C:\Caffe\caffe-master\Build\x64\Release\pycaffe”。

   

  在C:\Caffe\caffe-master\Build\x64\Release\pycaffe下执行执行python,输入import caffe

  

  出现出错,打开一个新cmd

    

  

  到此,PyCaffe应该是配置好了。

  其实发现,虽然改了opencv,但是这opencv其实彻底乱掉了。

  

  还不如一开始 自己直接就下载opencv2.4.10试试,这样可能 乱的更整齐。


0 0