win7下编译Microsoft版的caffe包的MATLAB接口(CPU模式)
本博客是基于http://www.cnblogs.com/njust-ycc/p/5776286.html这篇博客修改的,做出了更正与补充。
本人机器的环境:Win7+MATLAB2014b+VS2013

1.首先去github上下载Microsoft的caffe包,地址:https://github.com/microsoft/caffe
下载完后,解压得到:

把 caffe-master\windows 路径下的 CommonSettings.props.example 复制一份,并且后缀名改成 .props
2.进去找到windows文件夹,进入windows文件夹,找到Caffe.sln文件,这就是要打开的项目文件,如下:

3.使用vs2013打开Caffe.sln项目文件,打开后目录文件如下所示:

4.因为这里是无gpu配置,并且还要编译matlab接口,首先要修改props目录下的CommonSettings.props配置文件,就是这个:

打开该配置文件,修改以下几个地方:因为我们是CPU下配置,且支持matlab接口,其他地方不要修改。

修改matlab安装的根目录:

这里是因为Microsoft 的github貌似更新了matcaffe中的caffe_.cpp文件,第十六行添加了对gpu/mxGPUArray.h的引用,可以在此步骤的IncludePath中添加MatlabDir。

修改matcaffe中caffe_.cpp中的第十六行#include"gpu/mxGPUArray.h"中修改为

5.差不多该修改的文件都已经修改完了,然后我们开始进行编译,选择Release模式,(当然debug也行)

右击matcaffe项目,点击重新生成


注意,由于这个版本的caffe-windows包,不需要自己下载第三方库,它会自动去下载的,这个过程比较慢,因此首次编译的时候会自动下载第三方库,耐心等待即可。
下载完后,在caffe-windows文件夹下多了一个:

打开可以看到有16个文件夹,这些都是第三方的依赖库

下载完后,应该会继续编译,等个几分钟,直到编译成功。

6.编译成功后,我们进入如下目录:

可以看到成功生成了matcaffe文件夹 以及caffe.exe可执行文件,还有其他一些依赖文件,caffe.exe是用来进行网络训练的。

打开matcaffe文件夹,进入+caffe,再进入private,如果成功生成了caffe_mexw64文件,说明matlab接口配置成功了。

7.最后我们在matlab里进行测试,(这里还可以参考下http://blog.csdn.net/zb1165048017/article/details/51702686这篇博客,“第四步”之后~)
首先添加系统路径(path):路径深度到Release目录为止,比如,我这里是E:\科研\deep-learning\caffe-windows\caffe-windows\Build\x64\Release,
然后打开matlab2015a, 添加路径,路径深度到matcaffe目录为止,比如,我这里是E:\科研\deep-learning\caffe-windows\caffe-windows\Build\x64\Release\matcaffe



保存后,重启matlab,不然测试时会报找不到caffe_mexw64模块的错误。
在控制台输入一个函数作为测试:
caffe.reset_all();
可以看到如下:

说明matlab接口可以使用了。
win7下编译Microsoft版的caffe包的MATLAB接口(CPU模式)的更多相关文章
- 一步步实现windows版ijkplayer系列文章之四——windows下编译ijkplyer版ffmpeg
一步步实现windows版ijkplayer系列文章之一--Windows10平台编译ffmpeg 4.0.2,生成ffplay 一步步实现windows版ijkplayer系列文章之二--Ijkpl ...
- libevent学习之二:Windows7(Win7)下编译libevent
Linux下编译参考源码中的README文件即可,这里主要记录Windows下的编译. 一.准备工作 去官网下载最新的稳定发布版本libevent-2.0.22-stable 官网地址:http:// ...
- win7 下vs2008试用版破解
用过微软的开发套件Visual Studio 2008,如果用的是试用版本,超过90天,就会过期,出现下面这张图片显示的 下面介绍破解的步骤: 1.首先打开控制面板——然后找到卸载或更改程序——然后找 ...
- 在虚拟机linux环境下编译windows版adb fastboot
原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html 我根据虚拟机编译遇到的问题进行一些添加 [前提条件] Linux Android ...
- 64位Win7下编译Python3的计算机视觉库:OpenCV
注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) OpenCV目前最新版是3.0.0 rc1,官方给出了编译好的Python2可以直接使用 ...
- 64位Win7下编译hadoop 1.2.1问题解决
0.报sed的错误.原因在于没有安装cygwin.安装cygwin的时候要选择sed 1.Cannot run program "autoreconf". 这个问题在网上看了很多解 ...
- Linux下编译java并生成jar包
下面是WordCount.java类 package com.ll; import java.io.IOException; import java.util.Iterator; import jav ...
- Ubuntu/Debian下编译PC版的ffmpeg
1.安装git: 在命令行下执行 sudo apt-get install git-core 2.下载最新版本的ffmpeg: git clone git://source.ffmpeg.org/ff ...
- windos10环境下编译python3版pjsua库
环境:windows10_x64python3.9_x64pjsua-2.10vs2015 pjsua编译参考这里: https://www.cnblogs.com/MikeZhang/p/pjsip ...
随机推荐
- Haystack-全文搜索框架
Haystack 1.什么是Haystack Haystack是django的开源全文搜索框架(全文检索不同于特定字段的模糊查询,使用全文检索的效率更高 ),该框架支持Solr,Elasticsear ...
- jqGrid合并单元格
两个参数 /**合并单元格:合并指定 gridName表格的NoName 列,合并的标准是参考CellName+CellNameTwo列内单元格的值. * gridName :表格名称 * NoNam ...
- C#+EntityFramework编程方式详细之Code First 数据迁移
在前几篇的C#+EntityFramework编程方式中介绍了C#+EntityFramework编程方式Code First ,Model First以及Dtatabase First 等编程方式, ...
- Matlab将多项式的系数设为0
符号运算时有些多项式的系数值接近于0,像这样 fun = 3.5753839759325595498222646101085e-49*x + 1.836709923159824231201150839 ...
- Metaphor of topological basis and open set
The definition of topological basis for a space $X$ requires that each point $x$ in $X$ is contained ...
- H5唤醒app,不完全兼容
---ps---最近新发现一个开源的H5唤醒app的库:建议使用第三方开源库https://github.com/suanmei/callapp-lib实现:或者极光魔链(后期可能会收费)https: ...
- JS 的骚操作
一.强制类型转换 1.1string强制转换为数字 //可以用*1来转化为数字((实际上是调用.valueOf方法) 然后使用Number.isNaN来判断是否为NaN,或者使用 a !== a 来判 ...
- 使用ansible kubectl插件连接kubernetes pod以及实现原理
ansible kubectl connection plugin ansible是目前业界非常火热的自动化运维工具.ansible可以通过ssh连接到目标机器上,从而完成指定的命令或者操作. 在ku ...
- CommonJs规范详解---【XUEBIG】
CommonJS是服务器模块的规范,Node.js采用了这个规范 1.CommonJs规范的出发点:JS没有模块系统.标准库较少.缺乏包管理工具:为了让JS可以在任何地方运行,以达到Java.C ...
- 【AtCoder】【模型转化】【二分答案】Median Pyramid Hard(AGC006)
题意: 给你一个排列,有2*n-1个元素,现在进行以下的操作: 每一次将a[i]替换成为a[i-1],a[i],a[i+1]三个数的中位数,并且所有的操作是同时进行的,也就是说这一次用于计算的a[], ...