有些时候,需要在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. UnzipUtil

    public class UnzipUtil { private static final Logger logger = LoggerFactory.getLogger(CopyFileUtil.c ...

  2. NuGet的简单使用

    什么是NuGet? NuGet(读作New Get)是用于微软.NET开发平台的软件包管理器,是一个Visual Studio的扩展.在使用Visual Studio开发基于.NET Framewor ...

  3. 洛谷P2611 信息传递

    并查集裸题,记录每个点的胜读,取个min就好了 #include<stdio.h> #include<string.h> #include<algorithm> u ...

  4. Java集合类学习笔记2

    二,具体的集合 集合类型 描述 ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 ArrayDeque 一种用循环数组实 ...

  5. matlab 表示一个导数的函数

    对此式在matlab做表示:

  6. .net 中写 psql 匿名函数、过程语言

    DO --关键字 $serch$ --$中间随便写, 不能用特殊符号和数字好像$ DECLARE times integer; --定义变量 rec history_depart%ROWTYPE; - ...

  7. Java8分组(groupingBy)

    1.分组,计数,排序 public class Java8Example1 { public static void main(String[] args) { List<String> ...

  8. semaphore demo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

    import 'dart:async'; import 'package:semaphore/semaphore.dart'; import 'dart:io'; import 'dart:conve ...

  9. GPIO8种方式小总结

    在输出3时写1时上反向为0,下为1,1时MOS不接通,0接通 为1时上导通输出高电平1: 为0时下导通输出低电平0: VDD为逻辑电源正 VSS为逻辑地 若为输出状态则施密特触发器总为开 然后经过上拉 ...

  10. nginx 配置反向代理

    之前的前端是8123端口,使用此端口让nginx的反向代理. vim /etc/nginx/conf.d/80-fr.conf upstream cats{ server 127.0.0.1:8123 ...