有些时候,需要在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文件。

vs2015编译caffe的更多相关文章

  1. win10+vs2015编译caffe的cpu debug版本、部署matcaffe

    一.编译caffe 1.安装python-3.5.2-amd64.exe https://www.python.org/ftp/python/3.5.2/python-3.5.2-amd64.exe ...

  2. 实践详细篇-Windows下使用VS2015编译安装Caffe环境(CPU ONLY)

    学习深度学习背景 最近在做一款抢票软件,由于12306经常检测账号状态,抢票抢着抢着就需要重新登录了,然后登录是需要验证码的.所以我最开始是想到了使用java基于感知哈希算法pHash做相似度匹配识别 ...

  3. 实践详细篇-Windows下使用VS2015编译的Caffe训练mnist数据集

    上一篇记录的是学习caffe前的环境准备以及如何创建好自己需要的caffe版本.这一篇记录的是如何使用编译好的caffe做训练mnist数据集,步骤编号延用上一篇 <实践详细篇-Windows下 ...

  4. caffe搭建--caffe- win10 vs2015 编译(支持GPU)--注意在cmake的时候需要根据情况仔细修改配置

    --http://blog.csdn.net/longji/article/details/60964998 注意: 在cmake的时候需要根据情况仔细修改配置,比如,如果gpu的能力不足3.0的话, ...

  5. 使用vs2015编译、部署ssd-caffe(weiliu89版,CPU模式)

    前因项目所需,须训练一个快速模型以实现目标物体的实时检测.历经多次实践,发现MobileNetSSD网络符合要求,故在本人工作PC上部署weiliu89版本的ssd-caffe以期用之训练项目要求之模 ...

  6. VS2015编译boost1.62

    VS2015编译boost1.62 Boost库是一个可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一. Boost库由C++标准委员会库工作组成员发起,其中有些内容有 ...

  7. VS2015编译Qt5.7.0生成支持XP的静态库(很不错)

    一.编译工具 1.VS2015 编译Qt5.7.0的所需VS版本:Visual Studio 2013 (Update1)或Visual Studio 2015 (Update2).因为Update补 ...

  8. ubuntu14.04下安装cudnn5.1.3,opencv3.0,编译caffe及配置matlab和python接口过程记录

    已有条件: ubuntu14.04+cuda7.5+anaconda2(即python2.7)+matlabR2014a 上述已经装好了,开始搭建caffe环境. 1. 装cudnn5.1.3,参照: ...

  9. ubuntu下编译caffe

    Ubuntu下编译caffe 纯粹是个人编译的记录.不用CUDA(笔记本是amd卡,万恶的nvidia):不手动编译依赖包(apt-get是用来干啥的?用来直接装二进制包,以及自动解决依赖项的) ca ...

随机推荐

  1. cycle标签和random两种方式美化表格

    一:cycle标签实现给表格变色 1. <style>标签里写好需要的颜色 2. 在要变色的地方(行/列)加固定的语句,按照顺序依次执行 代码: <!DOCTYPE html> ...

  2. docker容器实战-----初级<2>

    第二章  docker容器 1. Docker是通过内核虚拟化技术(namespaces及cgroups cpu.内存.磁盘io等)来提供容器的资源隔离与安全保障等.由于Docker通过操作系统层的虚 ...

  3. python精进之路 -- open函数

    下面是python中builtins文件里对open函数的定义,我将英文按照我的理解翻译成中文,方便以后查看. def open(file, mode='r', buffering=None, enc ...

  4. java 命令查字节码文件, 查.class文件内容

    1. 需要用javac,javap命令,所以先配下环境变量 2.配置环境变量 单击“计算机-属性-高级系统设置”,单击“环境变量”.在“系统变量”栏下单击“新建”,创建新的系统环境变量. 3.写需要用 ...

  5. Java面向对象概述和三大特性

    Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心.围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范.继承是类与类之间联系的一种形式.而多态 ...

  6. Python-----多线程threading用法

    threading模块是Python里面常用的线程模块,多线程处理任务对于提升效率非常重要,先说一下线程和进程的各种区别,如图 概括起来就是 IO密集型(不用CPU) 多线程计算密集型(用CPU) 多 ...

  7. Linux的邮件服务器配置

    一.邮件服务简介 1.电子邮件服务是Interne上最基本的服务之一,进入互联网的用户不需要任何纸张就可以方便地使用电子邮件来收发邮件 2.Internet上的电子邮件服务都是基于客户/服务器模式的 ...

  8. java网络编程学习之NIO模型

    网上对NIO的解释有很多,但自己一直没有理解,根据自己的理解画出下面这个图,有什么不对的地方,欢迎留言指出. 理解是,客户端先与通过通道Channel与连接(注册到服务器端),然后再传送数据,服务器端 ...

  9. toggle,hasClass

    toggle 但当toggle(),不带参数时,与show()和hide()的作用一样,切换元素的可见状态,如果元素是可见的,则切换为隐藏状态;如果元素是隐藏的则切换为可见状态,此时括号内可添加()毫 ...

  10. 远程执行shell脚本的小技巧

    很多时候需要批量跑脚本执行任务,但又不想分发再执行,而是直接一条命令下去就跑脚本,该怎么玩比较嗨? 例如以下脚本: #!/bin/bash echo "$@" echo " ...