【机器学习】windows版caffe深度学习库编译

caffe主要版本是基于Linux的,其Windows版本是由微软提交维护的。编译caffe的最低要求VS版本为2013,一开始让我很诧异,难道微软要用什么黑科技么?这让软件开发和推广很有难度啊。不多说了,先git clone下来再编译。
微软给出的安装说明中,准备工作有:

  • 安装VS2013
  • 安装CUDA7.5
  • 下载cudnn,然后解压到cuda安装目录下,一般是C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5。下载cudnn要求注册。cudnn压缩包内是已经编译好的cudnn库。
  • 下载安装anaconda(可选),获取python支持。微软貌似对anaconda态度很好,默认anaconda作为官方python了。
  • 安装python支持包(如果安装python支持),输入conda install --yes numpy scipy matplotlib scikit-image pippip install protobuf
  • 下载安装matlab(可选)。

接下来添加caffe编译目录中的caffe\windows\CommonSettings.props文件。这个文件可以参照caffe\windows\CommonSettings.props.example文件来编辑。如果要安装python支持,我们需要把python支持打开: <PythonSupport>true</PythonSupport> <script type="math/tex" id="MathJax-Element-211"> true </script>,然后下来到后面,找到并编辑anaconda目录<PythonDir>F:\Miniconda2\<PythonDir>。如果要安装matlab支持,编辑 <MatlabSupport>true</MatlabbSupaporlt> <script type="math/tex" id="MathJax-Element-212"> true</script>。找到并编辑matlab目录 <MatlabDir>D:\Program Files\MATLAB\R2015b</MatlabDir>.

接下来打开caffe\windows\Caffe.sln文件。如果CUDA没装好,libcaffe项目是会加载失败的。选择生成-批生成,全部勾选即可,开始编译。如果出现error C2220: 警告被视为错误 - 没有生成“object”文件 错误,这是因为在非英文系统中,一些文件结尾是乱码,我打开vs指出的错误的cpp源码文件,然后重新保存,再生成即可。

我试图修改libcaffe生成方式为dll动态编译,结果总是提示lib无法生成,只好仍然使用微软原生设置的lib静态编译,lib文件有300多MB。我查看了一下caffe解决方案里面caffe项目的配置,发现该项目静态链接libcaffe.lib,但是生成的caffe程序并不大,只有6MB多,需要额外的cuda、gflag、opencv等第三方库的dll文件,没有caffe的dll 文件。按理说静态编译会包含进lib文件,导致程序体积变大,看到caffe.exe的大小,我不得不感慨编译技术也是日新月异啊。

生成的caffe位于caffe\Build\x64,可以找到test_all.exe程序,进行caffe测试,看看caffe是否编译成功。
将caffe\Build\x64\Release\pycaffe\caffe文件夹放到anaconda\Lib\sitepackages下面,打开anaconda python即可直接import caffe。

Windows下面编译caffe不需要像Linux版那样,需要下载一堆第三方开源库,所有的库,微软都通过VS2013的Nuget模块,自动获取了。看来编译windows 版的caffe是微软推广新版VS,发大财的手段啊。这反映出微软想拥抱开源的信念。不过仅仅是为了推广vs,微软就把caffe绑定在需要vs2013才能编译的地步,想想一大帮人和一大群公司、实验室还在用vs2008,vs2010,微软突然来个vs2013硬广告,吾等实在是吃不消。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值