有些时候,需要在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中,
我的电脑上没有gpu,所以编译的是cpu版本的caffe
修改CommonSettings.props这个配置文件,
编译cpu模式的时候,
将这一行去掉,要不然会报错,找不到cufft.lib的文件
用vs2015打开这个caffe解决方案,
编译libcaffe,caffe,基本没有啥问题。主要的问题出现在编译pycaffe上。
首先需要配置一下,python的环境
开始的时候,我用python3.5的环境编译的pycaffe,报错找不到python3.6.lib。
以为是python的环境没有配置,导致找不到库文件。重新配置python路径,编译了好几次,都在编译pycaffe的时候,失败,找不到python36.lib。
猜测,可能是下载的第三方库,是基于python3.6编译的。
在conda配置了一个python3.6的环境,py36
Prefix path: D:\Anaconda3\envs\py36\
Interpreter path: D:\Anaconda3\envs\py36\python.exe
Windowed interpreter: D:\Anaconda3\envs\py36\pythonw.exe
Library path: D:\Anaconda3\Lib
Language version: 3.5 这个选项中最高的就是3.5,没有3.6,就选了个3.5,貌似不影响最后的编译。
依次编译libcaffe,caffe,pycaffe,编译成功。
在python中import caffe
将caffe_root\Build\x64\Release\pycaffe路径下的caffe文件夹拷贝到py36/Lib/site-packages中。
即可在python3.6的环境下import caffe
不需要将..\caffe_root\Build\x64\Release 的路径添加到环境变量中,也可import caffe
因为生成的pycaffe/caffe中包含了一些dll文件。