windows下编译caffe与faster-rcnn+gpu(2080Ti)

7 篇文章 0 订阅
6 篇文章 0 订阅

一些背景:

题记:本来在笔记本上已经配置好caffe-gpu与caffe-frcnn,训练了caffe数据集,也验证了frcnn自带的例子。在使用frcnn的时候出现了意外,ZF模型的目标检测是正常的,VGG16gpu状态时,模型的目标检测一直显示超出内存,在使用系统监视器观察时,确实在调用VGG16的时候显存飙升,但是使用cpu时可以跑通,不过意料之中的慢,ZF网络的时候占用显存很少,可以跑通,具体情况见图,同时给出我的笔记本硬件:

dell g3-3590;

显卡:双显卡,集显+NVIDIA gtx1660Ti-MQ(被阉割过的意思,游戏本)

cpu:i7-9570H. 内存:8G

CUDA-8.0;cudnn加入后不能编译,会报一些错误,网上说是MQ类显卡没有适配的cudnn版本,就果断不用这个加速了。

第一张图:vgg16在cpu下运行的cpu状态:

第二张图:vgg16在gpu下的报错以及gpu状态

反正就是瞬间登顶,不知道是不是我设置错了,毕竟VGG16在Ubuntu16.04操作系统下,只需要3G显存就可以运行,在windows下出现了这种状况,一时头大,路过的大佬可以交流指导给点意见。

第三张图:ZF网络模型在gpu状态下的运行:

可以看到真的是毫无压力,令人迷惑。

步入正题:

windows10+2080Ti+vs2013+Anaconda2+cuda8.0+cudnn5+microsoft-caffe

因为上面出现的问题,我决定在2080Ti的台式机(windows系统)上配置类似环境,试图找找问题出在哪里,顺便也记录一下过程。

1.安装显卡驱动:

网址:选择显卡驱动版本

选择合适的版本安装就行,windows上显卡驱动安装比较简单。

2.安装VS2013

VS2013的安装很简单,有一个“软件安装管家”的工重号(不是本人的,也没有打广告的意思),里面有安装包和大白式安装步骤,直接破解。我的安装:

3.安装Anaconda2:

网址:Anaconda官网

也没啥好说的,下载python2.7的版本吧,目前还能用,说是2020才不再维护,到时候应该会有更好的解决方法。

4.安装cuda8.0

之所以用cuda8.0,是因为笔记本上配置的是8.0,主要想用来找出vgg16不能运行的原因,并且一些新的版本可能不适用,这个我参考的博客中,最频繁,而且已经下载好。

网址:cuda-8.0下载地址

进去下载就好了,安装也是大白式操作,默认安装在C,我曾经试图安装在非系统盘,自动移植到C盘,惹不起。

5.安装cudnn-5.0

网址:cudnn下载地址

这个需要注册NVIDIA账号的,自己用邮箱注册一个,下载好对应版本,安装也很简单,将里面的三个文件夹(bin,include,lib)放在CUDA的安装路径下,有需要替换的直接点击替换就行了,具体如下:

另外,可以把这个解压缩出来的cudnn文件放在cuda并列的文件夹或者caffe的文件夹,因为这个路径后来要用到,放在哪图个方便就成:

5.microsoft-caffe

最好用这个版本的caffe吧,安装起来很轻松的,有直接的windows文件夹使用:Microsoft-caffe

下载好放在某个路径下,

1.打开~\caffe-maste\windows文件夹,将其中CommonSettings.props.example文件复制一份,重命名为CommonSettings.props

2.用VS打开CommonSettings.props 
a. 把其中的CudaVersion改为8.0 
b. 把PythonSupport改为true 
c. 把CuDnnPath改为刚才拷贝cuda文件夹的地址,即C:\caffe-master 
d. 把PythonDir改为~\Anaconda2 

具体的看图,照葫芦画瓢:

更改完成后保存关闭

3.以管理员方式打开VS2013,在Vs内找到~/caffe/windows/caffe.sln,打开,编译其中的各个工具包,每个工具包编译的方式都一样,我很少会一起编译,因为极大可能会报错,别人博客有写整体编译,可以参考:安装Windows版Caffe与py-faster-RCNN(强烈推荐)

编译之前需要将调试方式由Debug改为Release,所编译的项目设为启动项目,且关闭“将警告视为错误”,具体如下:

选定某个要编译的项目右键:

再点击上图最下栏的属性,更改最后一项:

4.此时,几乎可以编译了(右键某个项目,如libcaffe,点击生成),但是接下来应该会报错,每个人的环境不一样,以我的为例子,我报错主要出在两个地方:

(1)opencv版本旧,这个要更新到2.4.11

错误 5 error MSB4062: 未能从程序集 S:\NugetPackages\OpenCV.2.4.10\build\native\\private\coapp.NuGetNativeMSBuildTasks.dll 加载任务“NuGetPackageOverlay”。未能加载文件或程序集“file:///S:\NugetPackages\OpenCV.2.4.10\build\native\private\coapp.NuGetNativeMSBuildTasks.dll”或它的某一个依赖项。系统找不到指定的文件。 请确认 <UsingTask> 声明正确,该程序集及其所有依赖项都可用,并且该任务包含实现 Microsoft.Build.Framework.ITask 的公共类。 S:\NugetPackages\OpenCV.2.4.10\build\native\OpenCV.targets 768 5 libcaffe

(2)glog版本太高。先卸载后安装,不要慌

Error 270 error MSB4062: **The “NuGetPackageOverlay” task could not be loaded from the assembly D:\caffe1\NugetPackages\gflags.2.1.2.1\build\native\private\coapp.NuGetNativeMSBuildTasks.dll. **Could not load file or assembly ‘file:///D:\caffe1\NugetPackages\gflags.2.1.2.1\build\native\private\coapp.NuGetNativeMSBuildTasks.dll’ or one of its dependencies. 系统找不到指定的文件。 Confirm that the declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. D:\caffe1\NugetPackages\glog.0.3.3.0\build\native\glog.targets 329 5 libcaffe

 

解决方法:

先讲明,解决方法要在编译之前,因为我是挨个编译的,所以下载完NugetPackages包后,每次要编译一个项目之前,都会进行下面两个操作:

(1)点击“项目”-管理Nuget程序包-“更新”(因为额我把opencv更新过了,所以更新下面就没了,但是还是要贴上来,形象一点):

(2)去“已安装的包里面”卸载glog,再在“联机”里面搜索“glog”进行安装:

         为什么报错gflags要对glog进行更改,不直接对gflags进行更改呢?仔细看报错的最后一行,出现了关键字“glog”,猜测应该也是版本不匹配的原因吧。

5.至此,一个项目的已经预备好了,点击项目右键,生成即可如下图所示,其他项目也要挨个按照前面的步骤来,如果你的错误和我的不一样,那么每次编译之前也一定要注意做好自己的修改以免功亏一篑。

一般需要的工具无非就是求平均值,转换数据格式,构建python接口(编译pycaffe项目)等等。

6.import caffe

将将caffe-master\Build\x64\Release\pycaffe\caffe文件夹 ,放在~\Anaconda2\Lib\site-packages文件夹中 ,有冲突点击替换即可,然后在windows下打开终端,输入python,在输入import caffe不报错,编译完成了,至于训练,和ubuntu环境下基本一样,重新编译一些命令就可以了。

caffe结束。

faster-rcnn明天写。。累死了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值