有些时候,需要在python3的环境下import caffe,需要用vs2015在python3的环境下,编译pycaffe。

microsoft的windows版本的caffe,依赖的库NugetPackages,是基于vs2013,python2.7编译的,编译的pycaffe在python3的环境下不能用。

用vs2015编译caffe,网上有两种方法,

一,编译用cmake编译BVLC版本的caffe,看起来比较复杂,没有尝试。

二,编译happynear(峰神)版本的caffe,第三方库,有网友已经编译好了。

本文采用的第二种思路。

参考博客:https://blog.csdn.net/xingchenbingbuyu/article/details/72765612

 

用vs2015在happynear版本的caffe上编译。

下载caffe源码,happynear版本的caffe,王峰大神修改后的caffe源码。

https://github.com/happynear/caffe-windows

该网页中,峰神分享了第三方库,其中有一些库,是基于python2.7编译的。

有网友分享了一份基于python3编译的第三方库,

https://github.com/happynear/caffe-windows/issues/262

该第三方库的链接:

https://pan.baidu.com/s/1o_qGgZQ0M5Z06TuEQxkF2g icsq

将这些库复制到caffe_root/windows/thirdparty中,

 vs2015编译caffe

我的电脑上没有gpu,所以编译的是cpu版本的caffe

修改CommonSettings.props这个配置文件,

vs2015编译caffe

编译cpu模式的时候,

 vs2015编译caffe

将这一行去掉,要不然会报错,找不到cufft.lib的文件

 

用vs2015打开这个caffe解决方案,

编译libcaffe,caffe,基本没有啥问题。主要的问题出现在编译pycaffe上。

首先需要配置一下,python的环境

vs2015编译caffe

开始的时候,我用python3.5的环境编译的pycaffe,报错找不到python3.6.lib。

以为是python的环境没有配置,导致找不到库文件。重新配置python路径,编译了好几次,都在编译pycaffe的时候,失败,找不到python36.lib。

猜测,可能是下载的第三方库,是基于python3.6编译的。

在conda配置了一个python3.6的环境,py36

Prefix path:    D:Anaconda3envspy36

Interpreter path: D:Anaconda3envspy36python.exe

Windowed interpreter: D:Anaconda3envspy36pythonw.exe

Library path: D:Anaconda3Lib

Language version: 3.5     这个选项中最高的就是3.5,没有3.6,就选了个3.5,貌似不影响最后的编译。

 

依次编译libcaffe,caffe,pycaffe,编译成功。

 

在python中import caffe

将caffe_rootBuildx64Releasepycaffe路径下的caffe文件夹拷贝到py36/Lib/site-packages中。

即可在python3.6的环境下import caffe

不需要将..caffe_rootBuildx64Release 的路径添加到环境变量中,也可import caffe

因为生成的pycaffe/caffe中包含了一些dll文件。