Windows10 64位 + caffe + Matlab -- cpu版本

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 文件夹或者其他名称文件夹中。

Windows10 64位 + caffe + Matlab -- cpu版本_第1张图片

2 Visual Studio 2013 修改配置文件

  1. 打开 “caffe-master\windows”
  2. 原地复制 “CommonSettings.props.example”,然后去掉后缀 “.example”,得到 “CommonSettings.props” 文件;
    Windows10 64位 + caffe + Matlab -- cpu版本_第2张图片
  3. 用 Visual Studio 2013 打开 “CommonSettings.props” 文件;
  4. 该配置为使用 cpu 配置;设置 CpuOnlyBuild=true、UseCuDNN=false(若需要使用 GPU 也可以不用改,最好安装 Cuda7.5,不清楚 caffe 适配 Cuda 到那个版本了);
  5. 因为是 Matlab 接口,设置 MatlabSupport=true
    Windows10 64位 + caffe + Matlab -- cpu版本_第3张图片
  6. 更改 Matlab 路径(安装 Matlab 版本的路径,若有多个 Matlab 版本,则选择你用的即可);
  7. 增加一行代码,是安装 Matlab 路径下的 “gpu/mxGPUArray.h” 文件的所在路径,不增加的话后续会报错(gpu/mxGPUArray.h" Not Found);
    Windows10 64位 + caffe + Matlab -- cpu版本_第4张图片

ps1:报错的原因是使用的 Matlab 和 caffe 配置文件的 Matlab 版本不一致,不同的 Matlab 版本这个 “gpu/mxGPUArray.h” 路径不一样,解决方法就是找到这个文件所在的位置,然后在 CommonSettings.props 中添加这个路径,具体方法如下:
step1:首先在你安装的 MATLAB 文件 toolbox 下搜索 mxGPUArray.h 文件
Windows10 64位 + caffe + Matlab -- cpu版本_第5张图片
Windows10 64位 + caffe + Matlab -- cpu版本_第6张图片
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 生成配置文件

  1. 用 Visual Studio 2013 打开 caffe.sln。这里显示出共有16个项目
    Windows10 64位 + caffe + Matlab -- cpu版本_第7张图片
    Windows10 64位 + caffe + Matlab -- cpu版本_第8张图片
  2. 将 Debug 改为 Release,右键 caffe 项目,点击生成解决方案
    Windows10 64位 + caffe + Matlab -- cpu版本_第9张图片
    Windows10 64位 + caffe + Matlab -- cpu版本_第10张图片
  3. 若成功生成,则会显示下面窗口,同时在 caffe-master 并行文件夹里多出一个 NugetPackages 文件夹(有16个子文件夹),如下,若没有则根据下面 ps 操作;
    Windows10 64位 + caffe + Matlab -- cpu版本_第11张图片
    Windows10 64位 + caffe + Matlab -- cpu版本_第12张图片
    Windows10 64位 + caffe + Matlab -- cpu版本_第13张图片

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

  1. 同时会在 “\Build\x64\Release” 下生成一个 matcaffe 文件夹,最重要的是要有 “caffe_.mexw64” 文件
    Windows10 64位 + caffe + Matlab -- cpu版本_第14张图片

ps1:编译过程中可能会出现很多问题,后面加上问题和解决办法。

  1. 测试是否编译成功:在项目左侧,打开 “caffe.cpp”,然后运行 “ctrl+F5” 进行编译;
    Windows10 64位 + caffe + Matlab -- cpu版本_第15张图片
    Windows10 64位 + caffe + Matlab -- cpu版本_第16张图片
  2. “…\caffe-master\Build\x64\Release”“…\caffe-master\Build\x64\Debug” 中的所有 “.dll” 文件复制到 “…\caffe-master\matlab\ +caffe\private” 中;
    Windows10 64位 + caffe + Matlab -- cpu版本_第17张图片

ps1:为了防止出现 Undefined variable “caffe” or class “caffe.reset_all” 报错。

4 配置系统环境变量

  1. “…\caffe-master\Build\x64\Release” 添加到系统环境变量中,如图:
    Windows10 64位 + caffe + Matlab -- cpu版本_第18张图片
    Windows10 64位 + caffe + Matlab -- cpu版本_第19张图片

ps1:防止出现下述错误:
Windows10 64位 + caffe + Matlab -- cpu版本_第20张图片

5 配置 Matlab 预设路径

  1. 添加 “\caffe-master\Build\x64\Release\matcaffe” 这个文件到 Matlab 预设路径
    Windows10 64位 + caffe + Matlab -- cpu版本_第21张图片
  2. 重启 Matlab

6 配置 model 文件

  1. 下载 model 文件:“bvlc_reference_caffenet.caffemodel”(运行 “classification_demo.m” 需要);

百度网盘链接:
链接:https://pan.baidu.com/s/1ZIREJRv2ZWIadQz-k6U9xg
提取码:CAFF

  1. “bvlc_reference_caffenet.caffemodel” 放到 “caffe-master\models\bvlc_reference_caffenet” 文件夹下;
    Windows10 64位 + caffe + Matlab -- cpu版本_第22张图片

7 下载标签文件

  1. 下载标签文件:“synset_words.txt”(运行 “classification_demo.m” 需要);

百度网盘链接:
链接:https://pan.baidu.com/s/1bTSLcYiOIvgKhWorN6jJbQ
提取码:CAFF

  1. “synset_words.txt” 放在与 “classification_demo.m” 同一个文件夹下;
    Windows10 64位 + caffe + Matlab -- cpu版本_第23张图片

8 测试 “classification_demo.m”

  1. 打开 “classification_demo.m”,运行。如果出现:
    Windows10 64位 + caffe + Matlab -- cpu版本_第24张图片
  2. 请修改 “classification_demo.m” 第二条语句 ;
    在这里插入图片描述
  3. 在运行一个测试文件 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
  1. 运行结果如下:
    Windows10 64位 + caffe + Matlab -- cpu版本_第25张图片
  2. 配置成功!!!

你可能感兴趣的:(caffe,matlab,windows)