Win10系统环境下caffe的Python接口Anaconda2配置

本文详细介绍了如何在Win10系统中,利用Anaconda2环境配置Caffe的Python接口。首先,需要完成基础的Windows版Caffe配置,接着安装Python2.7和Anaconda2,配置相关环境。在编译libcaffe、caffe及pycaffe过程中,重点讲解了设置警告等级、添加Python和numpy路径,解决编译时的外部符号错误。最后,通过检查生成的文件和测试Python接口,确认配置成功。
摘要由CSDN通过智能技术生成

继之前配置好基础的Windows版caffe之后,成功用cmd运行。然而之后遇到搭建自定义网络的需求,于是打算采用Python写个make_net的程序,这就需要给caffe安上Pycaffe以支持import caffe的需求。

在查询了大把博客教程后,慢慢整合,摸索出了安装的过程。

本文大部分教程参考marso老师的http://www.cnblogs.com/marso/p/caffe_win10_python.html
也可根据链接内容实现纯Python2.7版配置。下面开始教程内容。

一、配置准备

1、完成教程http://blog.csdn.net/maltliquor/article/details/78261339到4.6步,即后面的编译libcaffe暂时不进行。

2、安装Python2.7

3、安装Anaconda2 (链接: https://pan.baidu.com/s/1bOQGH4 密码: xhek),添加中科大镜像http://blog.csdn.net/jclose10/article/details/77370471,安装相关包:conda install –yes numpy scipy matplotlib scikit-image pip python

4、修改CommonSettings.props,修改结果如图所示,注意PythonDir要写自己安装Anaconda的目录,最后的斜杠别忘了写
这里写图片描述

这里写图片描述

二、编译libcaffe、caffe及pycaffe

1、打开caffe-master\windows\Caffe.sln 对libcaffe和caffe项目做如下设置:项目→属性→C/C++→常规→将警告视为错误 设置为否如果不设置的话在编译boost库的时候会由于文字编码的警告而报错,(把“警告等级”调整为等级3),这一步很重要,而且每个项目都要在属性设置一次。

2、选择编译环境为Release,x64(其他环境同理)。

这里写图片描述

3、在libcaffe项目点击右键->生成,然后等待生成

这里写图片描述

4、caffe在编译前先设置资源引用路径,点击项目右键-》属性-》配置属性-》c/c++,【附加包含目录中】加入python的include路径,我这是D:\Python27\include,

这里写图片描述

同时,在链接器中的【附加库目录】中加入python的libs路径,我这里是D:\Python27\libs,然后加入D:\Anaconda2\pkgs\python-2.7.13-1\libs,如果显卡安装不是默认路径也相应把C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\include和lib加入到里面,如下图:

这里写图片描述

5、在caffe项目点击右键-> 设置为启动项目->生成,然后等待生成

这里写图片描述

6、pycaffe在编译前先设置资源引用路径,点击pycaffe项目右键-> 属性-> 配置属性-> c/c++,【附加包含目录中】加入python的include路径和numpy的include路径,我这里分别是D:\Python27\include和D:\Anaconda2\Lib\site-packages\numpy\core\include

这里写图片描述

7、点击pycaffe项目右键-> 属性-> 配置属性-> 链接器中的【附加库目录】中加入python的libs路径和numpy的libs路径,我这里分别是D:\Python27\libs和D:\Anaconda2\Lib\site-packages\numpy\core\lib,然后加入D:\Anaconda2\pkgs\python-2.7.13-1\libs,如下图:

这里写图片描述

8、在pycaffe项目点击右键-> 设置为启动项目->生成,然后等待生成完成

如果这个编译时出现:

error LNK2001: 无法解析的外部符号 __imp_PyString_FromString error LNK2001:
无法解析的外部符号 __imp_PyCallable_Check error LNK2001: 无法解析的外部符号
__imp_PyObject_CallObject error LNK2001: 无法解析的外部符号 __imp_Py_Initialize error LNK2001: 无法解析的外部符号 __imp_Py_IsInitialized error LNK2001:
无法解析的外部符号 __imp_PyImport_Import error LNK2001: 无法解析的外部符号
__imp_PyModule_GetDict error LNK2001: 无法解析的外部符号 __imp_PyDict_GetItemString error LNK2001: 无法解析的外部符号 __imp_PyRun_SimpleStringFlags error LNK2001: 无法解析的外部符号 __imp_Py_Finalize

等无法解析外部符号等问题,说明C++编译器在调用python.exe时出错了,我遇到这个坑,解决了很久,具体原因我也不清楚,猜测是因为编码问题导致的,因为我下载的python有问题,而我同事的没问题,最终我把他所有的python文件拷贝覆盖我这里的,最终才算ok!

如果有出现error C2220: warning treated as error - no object file generated
这样的错误,右击项目,属性,在C/C++那里把treat warning as error设为no,再重新编译一次,就完成编译了。

如果用C编写Python扩展找不到Python27_d.lib,这是一个python版本问题,网友给的两种解决方案
方法一:直接安装debug版本的python27 方法二:
1.将python安装目录下libs目录里的python27复制一份并命名为python27_d.lib
2.修改include目录下的pyconfig.h,用/**/将#define Py_DEBUG注释掉http://blog.csdn.net/qq_38319794/article/details/77982664

三、编译完成后检查

如果编译成功了,会在caffe-master同路径下生成NugetPackages文件夹,同时在caffe-master文件夹下生成Build文件夹

1、NugetPackages里面内容

这里写图片描述

2、同时在caffe-master文件夹下生成Build文件夹,打开\caffe-master\Build\x64\Release,注意红圈的几个文件一定要有。

这里写图片描述

3、编译成功后,将caffe-master\caffe-master\Build\x64\Release\pycaffe路径下的caffe文件夹拷贝到D:\Anaconda2\Lib\site-packages

这里写图片描述

4、测试python接口,在cmd中进入Python,试试能不能导入caffe,出现如图所示则正常。

这里写图片描述

这个教程的本质就是编译出整个caffe文件夹,加好所有东西,然后放到site-package下面作为一个包来使用来使用。

P.S. 又发现一个好教程,从编译pycaffe开始与本文不太一样,有兴趣的同学可以从pycaffe那一步开始照着这个教程安装,也写得非常简明易懂哦。链接:http://blog.csdn.net/yiyisunshine/article/details/55194465

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值