Windows10 64位 + caffe + Matlab – cpu版本
最近需要用到 windows 下 matlab 的 caffe 接口。所以进行环境配置,配置也花了一点时间,记录一下配置过程,防止以后再需要配置时忘了。
参考博客:
https://www.cnblogs.com/TensorSense/p/6260284.html
http://t.zoukankan.com/njust-ycc-p-5776286.html
https://blog.csdn.net/jiangjieqazwsx/article/details/53292326
https://blog.csdn.net/u014546828/article/details/80447583
https://blog.csdn.net/u014546828/article/details/80431134
0 配置环境
1.Windows10 64位
2.Visual Studio 2013(最好这个版本,其他版本可能生成解决方案失败)
3.Matlab2019a(其他版本应该也行,网上用同样的方法在Matlab2015、Matlab2017等版本同样实现)
1 caffe windows 版本下载
Github下载链接:
https://github.com/Microsoft/caffe
下载后,解压到自己新建的 caffe 文件夹或者其他名称文件夹中。

2 Visual Studio 2013 修改配置文件
- 打开 “caffe-master\windows”;
- 原地复制 “CommonSettings.props.example”,然后去掉后缀 “.example”,得到 “CommonSettings.props” 文件;

- 用 Visual Studio 2013 打开 “CommonSettings.props” 文件;
- 该配置为使用 cpu 配置;设置 CpuOnlyBuild=true、UseCuDNN=false(若需要使用 GPU 也可以不用改,最好安装 Cuda7.5,不清楚 caffe 适配 Cuda 到那个版本了);
- 因为是 Matlab 接口,设置 MatlabSupport=true;

- 更改 Matlab 路径(安装 Matlab 版本的路径,若有多个 Matlab 版本,则选择你用的即可);
- 增加一行代码,是安装 Matlab 路径下的 “gpu/mxGPUArray.h” 文件的所在路径,不增加的话后续会报错(gpu/mxGPUArray.h" Not Found);

ps1:报错的原因是使用的 Matlab 和 caffe 配置文件的 Matlab 版本不一致,不同的 Matlab 版本这个 “gpu/mxGPUArray.h” 路径不一样,解决方法就是找到这个文件所在的位置,然后在 CommonSettings.props 中添加这个路径,具体方法如下:
step1:首先在你安装的 MATLAB 文件 toolbox 下搜索 mxGPUArray.h 文件
step2:然后右击这个文件,打开文件所在的位置,记下这个位置,例如我的路径是 :“F:\Polyspace\Matlab R2019a\toolbox\distcomp\gpu\extern\include\gpu”
step3:然后添加这行代码
ps2:因为这里找不到的是 “gpu/mxGPUArray.h” 的路径,而不是 “mxGPUArray.h” 的路径,因此只需要添加 “\toolbox\distcomp\gpu\extern\include” 即可;
3 Visual Studio 2013 生成配置文件
- 用 Visual Studio 2013 打开 caffe.sln。这里显示出共有16个项目


- 将 Debug 改为 Release,右键 caffe 项目,点击生成解决方案。


- 若成功生成,则会显示下面窗口,同时在 caffe-master 并行文件夹里多出一个 NugetPackages 文件夹(有16个子文件夹),如下,若没有则根据下面 ps 操作;



ps1:这里生成解决方案可能会出现 NuGet 程序包还原失败: 基础连接已经关闭: 发送时发生错误,这时候可以下载第三方库:NugetPackages,它同样也有16个文件夹。
百度网盘链接:
链接:https://pan.baidu.com/s/1gYOkgoSsBX9Fcx_BTlb9Gw
提取码:CAFF
- 同时会在 “\Build\x64\Release” 下生成一个 matcaffe 文件夹,最重要的是要有 “caffe_.mexw64” 文件

ps1:编译过程中可能会出现很多问题,后面加上问题和解决办法。
- 测试是否编译成功:在项目左侧,打开 “caffe.cpp”,然后运行 “ctrl+F5” 进行编译;


- 将 “…\caffe-master\Build\x64\Release” 或 “…\caffe-master\Build\x64\Debug” 中的所有 “.dll” 文件复制到 “…\caffe-master\matlab\ +caffe\private” 中;

ps1:为了防止出现 Undefined variable “caffe” or class “caffe.reset_all” 报错。
4 配置系统环境变量
- 把 “…\caffe-master\Build\x64\Release” 添加到系统环境变量中,如图:


ps1:防止出现下述错误:
5 配置 Matlab 预设路径
- 添加 “\caffe-master\Build\x64\Release\matcaffe” 这个文件到 Matlab 预设路径

- 重启 Matlab
6 配置 model 文件
- 下载 model 文件:“bvlc_reference_caffenet.caffemodel”(运行 “classification_demo.m” 需要);
百度网盘链接:
链接:https://pan.baidu.com/s/1ZIREJRv2ZWIadQz-k6U9xg
提取码:CAFF
- 将 “bvlc_reference_caffenet.caffemodel” 放到 “caffe-master\models\bvlc_reference_caffenet” 文件夹下;

7 下载标签文件
- 下载标签文件:“synset_words.txt”(运行 “classification_demo.m” 需要);
百度网盘链接:
链接:https://pan.baidu.com/s/1bTSLcYiOIvgKhWorN6jJbQ
提取码:CAFF
- 将 “synset_words.txt” 放在与 “classification_demo.m” 同一个文件夹下;

8 测试 “classification_demo.m”
- 打开 “classification_demo.m”,运行。如果出现:

- 请修改 “classification_demo.m” 第二条语句 ;

- 在运行一个测试文件 test_mat.mlx
出处:
http://blog.csdn.net/zb1165048017/article/details/51702686)
clear
clc
im = imread('../../examples/images/cat.jpg'); % 读取图片
figure;imshow(im); % 显示图片
[scores, maxlabel] = classification_demo(im, 0); % 获取得分第二个参数 0 为CPU,1 为GPU
maxlabel % 查看最大标签是谁
figure;plot(scores); % 画出得分情况
axis([0, 999, -0.1, 0.5]); % 坐标轴范围
grid on % 有网格
fid = fopen('synset_words.txt', 'r');
i=0;
while ~feof(fid)
i=i+1;
lin = fgetl(fid);
lin = strtrim(lin);
if(i==maxlabel)
fprintf('the label of %d is %s\n',i,lin)
break
end
end
- 运行结果如下:

- 配置成功!!!






被折叠的 条评论
为什么被折叠?



