VS2017+cuda10安装caffe 挖坑埋坑经过

整整装了一个星期的时间,头发都掉了不少,终于弄好了,及时记录一下备忘,也给有需要的朋友做做参考

具体的步骤就不说了,主要说说中间遇到的坑吧
开始主要按照(https://blog.csdn.net/nk_wavelet/article/details/78935511?utm_source=blogxgwz0)中的方法进行安装,可能是环境的问题,有无数的坑。
首先安装好了cuda和cudnn并进行了测试,git clone了caffe-microsoft源码,修改props中的cuda版本为10.0,使用141工具集。
直接编译libcaffe工程(注意将属性中的C++,警告视为错误关闭),出现如下错误:
1)MSB3721
2)“too few arguments in function call" in cudnn.hpp
双击第二行错误定位到错误代码,修改 ”CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv, pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION));” 为“CUDNN_CHECK(cudnnSetConvolution2dDescriptor(*conv,pad_h, pad_w, stride_h, stride_w, 1, 1, CUDNN_CROSS_CORRELATION,dataType::type))即可,libcaffe编译通过,caffe根目录下build文件夹中出现libcaffe.exe
接下来编译caffe工程(注意将属性中的C++,警告视为错误关闭),出现如下错误:
1)LNK1104 无法打开文件“libboost_date_time-vc140-mt-1_59.lib”
这个问题是由于nugets下载的是libboost_date_time-vc120-mt-1_59.lib文件,而caffe文件编译所需的文件却是vc140版本的,不对应,于是出现该错误,我从网上重新下载了对应版本的boost,将其lib文件夹加入项目属性-》VC++目录-》库目录中。该错误消失。
但是!!!!出现了更多的错误!!!!
在这里插入图片描述 这种错误一共有510个,通过网上查资料得知这种错误一般是由于缺少对应的lib库,有些教程说缺少了libgflags.lib,我们将libgflags.lib加入到项目属性-》链接器-》输入-》附加依赖项里面即可,我们照做之后出现如下错误:
在这里插入图片描述
说明该项目找不到对应的lib库,需要网上下载与windows版本适配的libgflags.lib,不过我只找到了linux版本的,在这里卡了半天无果尝试了其他版本,我下载了其他人安装版本的thirdparty文件夹,将其中glog下面的lib文件夹和glog.lib分别加入到项目属性-》VC++目录-》库目录和项目属性-》链接器-》输入-》附加依赖项中:

bingo!我们的错误一下减少到了134个,还需继续努力
我们继续观察这些错误,发现大部分错误跟cv有关,说明opencv库配置存在问题,按照网上的方法,解决方案中nuget安装的opencv版本存在问题,右键解决方案,管理nuget包,选到opencv,将所有项目中的opencv卸载。重新点到libcaffe项目-》鼠标右键-》生成依赖项-》生成自定义,将opencv去掉,再点击libcaffe项目属性-》VC目录-》包含目录添加自己下载的opencv目录里的include文件夹,再将opencv文件夹下的lib文件夹添加到libcaffe项目属性-》VC目录-》库目录中,再重新生成libcaffe项目,成功。
对caffe项目同样进行以下改动,再重新生成。
在这里插入图片描述
错误减少到了121,发现剩下的基本是protobuf还有leveldb相关的问题,采用类似的办法给项目添加类似的库,基本就是缺啥补啥的方法,最终将错误减少到了11个。
然后就没有然后了!!!

剩下11个问题捣鼓了整整一天,下了各种版本的thirdparty,添加了各种依赖库,依然无法解决,caffe项目配置弄得一团糟,心态爆炸,直接关了电脑健身去了。

第二天了发现了一个神奇的github库:https://github.com/happynear/caffe-windows
按照happynear老师的步骤,git clone了这个项目,将props里面的cuda版本改成了10.0,下载了对应的thirdparty文件并移动到了./windows文件夹,添加了对应的环境变量,编译libcaffe,成功。
在编译caffe项目时,再次出现了“libboost_thread-vc141-mt-gd-1_65_1.lib”问题,提示我们又该下载对应版本的libboost文件。这次我确实不想搞了,就打开happynear提供的thirdparty里面的boost文件夹,发现里面对应的是libboost_thread-vc140-mt-gd-1_65_1.lib库,简单粗暴的将其改为了141,发现这个问题居然没有了!!,于是我又把其他几个libboost库都做了同样修改,项目通过!
鼠标右键解决方案,生成解决方案,所有项目全部成功。
在这里插入图片描述
至此,caffe在VS2017安装成功。感谢happynear老师!已star!
后续的相关测试可以参考https://blog.csdn.net/guoyk1990/article/details/52909864

这是本人的第一篇博客,markdown编辑器还不太熟悉,各位看官将就看看,希望对大家有帮助,安装过程中如果还存在什么问题可以在下面评论,看到的话强迫症的我会秒回的,如果要转载的话麻烦注明链接,谢谢!

参考链接:
https://blog.csdn.net/nk_wavelet/article/details/78935511?utm_source=blogxgwz0
https://blog.csdn.net/happynear/article/details/45372231
https://blog.csdn.net/guoyk1990/article/details/52909864

展开阅读全文

没有更多推荐了,返回首页