VS2013+opencv2.4.9+cuda6.5+matlabr2014a+配置caffe

来源:互联网 发布:jquery能储存数据不 编辑:程序博客网 时间:2024/05/16 01:28

1、VS2013的安装,网上百度很多

2、opencv2.4.9的配置见我以前写得文章

3、安装matlabr2014a 见我以前写的文章

4、VS2013和matlabr2014交叉编译问题,见我以前写的文章

5、安装cuda

6、开始caffe安装

参考网址:http://blog.csdn.net/happynear/article/details/45372231

(1)下载caffe

http://download.csdn.net/detail/sinat_25434937/9732587

或者这个地址https://github.com/happynear/caffe-windows

(2)下载第三方支持库

    http://pan.baidu.com/s/1nvH7whz;

(3)在源码的根目录下建立个3rdparty文件夹,把文件解压进去就可以了。 
  解压好之后,要将3rdparty/bin文件夹添加到环境变量的PATH中,这样才能让程序找到这些第三方库的dll。

(4)编译

    非常简单,分为以下几步: 
  a、双击./src/caffe/proto/extract_proto.bat批处理文件来生成caffe.pb.hcaffe.pb.cc两个c++文件,和caffe_pb2.py这个Python使用的文件。 
  b、打开./buildVS2013/MainBuilder.sln,打开之后切换编译模式至Release X64模式。如果打开之后显示加载失败,可能你的CUDA版本和我的不一致,我的是CUDA 7.5版,这时就要用记事本打开./buildVS2013目录下各个文件夹内的.vcxproj文件,搜索CUDA 7.5,把这个7.5换成你自己的CUDA版本,重新reload就可以正常打开了。打开各工程属性页,在 链接器-》输入-》附加依赖项 中添加 “libgflags.lib” 即可。
  另外,如果你的显卡比较老或者没有显卡,请使用./build_cpu_only/MainBuilder.sln。 
  c、点上边工具栏中的绿色三角编译吧。编译大概需要半小时左右,请耐心等待。 

(5)编译遇到的问题

    <1>【conv_layer.cu】 错误 78 error: too few arguments in function call;

    <2>【error: MSB3721】
    <3>无法打开输入文件caffelib.lib
解决方法:
可以认为错误(2)(3)是由错误(1)引起的。错误(1)是在编译caffelib项目是出现的,定位错误行


在某论坛上看到解决办法是在最后加入第四个参数"false",即更改为


重新编译,又出现
      <4>【transformer_layer.cu】和【gram_layer.cu】error C1083: 无法打开包括文件: "device_atomic_functions.hpp"
目前我的处理方法是直接把device_atomic_functions.hpp标注掉。之后成功编译。
  <5>caffe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl google::ShowUsageWithFlagsRestrict(char const *,char const *)" (__imp_?ShowUsageWithFlagsRestrict@google@@YAXPEBD0@Z)
2>caffe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl google::SetUsageMessage(class std::basic_string,class std::allocator > const &)" (__imp_?SetUsageMessage@google@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
2>caffe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) void __cdecl google::SetVersionString(class std::basic_string,class std::allocator > const &)" (__imp_?SetVersionString@google@@YAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
2>caffe.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) public: __cdecl google::FlagRegisterer::FlagRegisterer(char const *,char const *,char const *,char const *,void *,void *)" (__imp_??0FlagRegisterer@google@@QEAA@PEBD000PEAX1@Z)
2>common.obj : error LNK2001: 无法解析的外部符号 "__declspec(dllimport) unsigned int __cdecl google::ParseCommandLineFlags(int *,char * * *,bool)" (__imp_?ParseCommandLineFlags@google@@YAIPEAHPEAPEAPEAD_N@Z)
2>../../bin\caffe.exe : fatal error LNK1120: 5 个无法解析的外部命令

解决方法:

   (1)下载新的动态链接库:http://pan.baidu.com/s/1nvH7whz;

   (2)解压后,替换 3rdparty 文件夹中的 bin、lib、include文件夹;

   (3)打开各工程属性页,在 链接器-》输入-》附加依赖项 中添加 “libgflags.lib” 即可。

7、编译matcaffe

用记事本打开F:\caffe-windows-master\buildVS2013\MSVCmex\matcaffe.vcxproj

修改matlab的地址D:\MATLAB\R2014a\extern\include

D:\MATLAB\R2014a\extern\lib\win64\microsoft

将这个文件中查找matlab,然后修改所有的目录到你的目录下,然后VS中重新reload matcaffe,然后build,你就可以在matlab/+caffe/private文件夹里面找到一个叫caffe_.mexw64的文件啦



0 0
原创粉丝点击