设为首页 收藏本站
查看: 672|回复: 0

[经验分享] windows 10 下 Caffe + Matlab 部署

[复制链接]

尚未签到

发表于 2017-6-27 15:58:31 | 显示全部楼层 |阅读模式
  在 windows 10 下部署 Caffe 花了很多时间才调通,记录下 key 节点以便后续查询:
  一、安装软件:
  1、安装 Microsoft Virtual Studio 2013 / Matlab 2015a / CUDA 7.5:
  需要注意的是, VS2013 需要先安装,以便于 Matlab 识别 VS路径,CUDA 绑定内容;总之需要 VS2013 第一个安装;
  其中,VS2013 SP5 是必须的版本,据 happynear [CSDN,GitHub]描述,Caffe 在 VS2012 下编译速度很慢(自测 VS2013 约半小时,i7 6700HQ / 64G / 970M / 3G + SSD);
  CUDA 测试用的 7.5 版本,其他版本的 Caffe 不知道是否需要修改相关源码;
  Matlab 测试使用的是 2015a,在前一次重置系统前是 2015b,似乎也没有异常,默认是 2014b,有欢迎留言反馈其他版本;
  2、安装 cuDNN:
  cuDNN 改善了 Caffe native 卷基层效率不高的弱点(参见 赵永科/卜居 先生的大作《深度学习-21天实战caffe》一书 P356 所提到的卷积网络性能对比),笔者下载的分支为 Microsoft 为 windows 所开发的分支,支持 cuDNN V3/V4,对于最新版本为 V5,Caffe 尚未官方(Microsoft 分支)支持,如要支持请参考卜居先生的指导;如果没有 nVIDIA 账号,需要注册一个账号才能下载 cuDNN(网上搜可以得到网盘等资源,文件名:cudnn-7.0-win-x64-v4.0-prod.zip cudnn-7.0-win-x64-v3.0-prod.zip cudnn-7.5-windows10-x64-v5.0-ga.zip );
  此外,建议 cuDNN 单独安装在一个目录中,独立于 CUDA,方便更换版本(删除就行);
DSC0000.png

  3、安装 Direct X SDK [非必选]:
  Direct X SDK 是非必须的,CUDA 的 Demo 编译时提示几个例程需要 d3dx9.h 文件,下载这个版本就好;
DSC0001.png

  如果安装出错(非全新系统容易出现),提示“Error Code: S1023:Setup failed. Errors were encountered during installation of redistributable packages. Please close all open programs and try running setup again. If problems persist, contact DirectX Developer Support.”,错误如下图,可以卸载 Microsoft Visual C++ 2010 x86/x64 redistributable 后继续安装(参考文章)。
DSC0002.png

  4、安装 Miniconda 部署 [非必选]:
  为了编译 Python 版本的 Caffe,需要安装 Miniconda,Microsoft/Caffe 的 READ.ME 里面有相关的说明;
  二、编译 Caffe windows 分支:
  开始之前,建议先编译一下 CUDA 自带的 Samples,以便测试 CUDA 环境,如果编译运行有错误,可以在这阶段方便地分离问题。
  Caffe 的 windows 分支有很多版本,测试使用的是 windows 版,这一版需要修改的内容较少(Happynear 版尝试了下,太复杂不适合小白),还是 Microsoft 的版本 Microsoft/caffe 比较容易,记录如下:
  1、下载或 Git 源码:
  地址:传送门;
  2、复制 .\windows\CommonSettings.props.example 文件,重命名为 .\windows\CommonSettings.props;
  3、修改 cuDNN 使能选项,决定是否使用 cuDNN;
   DSC0003.png
  3、安装 cuDNN 时,如果没有解压 cuDNN 在 CUDA 目录里面,需要修改 cuDNN 路径;
DSC0004.png

  4、修改 Matlab 路径为实际路径:
DSC0005.png

  5、可以打开 Caffe.sln 并准备编译了:
  windows 版需要依赖 NuGet 提供的第三方库,所以电脑能够上网,且网速良好是十分必要的(该死的长城宽带 / 该死的长城宽带 / 该死的长城宽带);
DSC0006.png

  编译可能会遇到一堆错误,不要紧,一个个检查过去就好了;
  其中测试时遇到的有:
  显示警告:“math_functions.h(4492): warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss”,类似这样数百数千个警告,不用管就可以;
  提示 alt_sstream_impl.hpp 文件有问题:“Error 8711 error C2220: warning treated as error - no 'object' file generated (..\..\src\caffe\util\math_functions.cpp) .\Caffe\NugetPackages \ boost.1.59.0.0\ lib \native \include \boost\format\alt_sstream_impl.hpp”,并提示了出错的行,这是这个文件的编码或是结尾等内容与当前系统或编译器设置不匹配,简单按下 Ctrl + S 重写 alt_sstream_impl.hpp 保存即可;
  其他还可能遇到的错误,请FQ或百度一下(留言也可以,小白我不一定能解决);
  需要注意的是,如果需要运行 Matlab,需要在编译前运行 MatlabPreBuild.cmd,编译后运行 MatlabPostBuild.cmd(没有深究编译前后是否自动调用了);
DSC0007.png

  解决了必然存在的编译错误,就愉快地生成了 windows 版的全部文件;
  三、跑 Matlab 版的测试:
  1、下载基本数据:
  可以在 GitHub 上下载需要的 bvlc_reference_caffenet.caffemodel 文件,或者寻找其他资源如网盘;下载完成后解压至 .\models\bvlc_reference_caffenet 目录;
DSC0008.png

  2、准备环境变量:
  添加编译出来的 .\Build\x64\Release 文件夹到环境变量的 path 中,如果运行不成功记得重启系统再试(很诡异,测试时重启才看到环境变量生效);
DSC0009.png

  3、启动 Matlab,指向 .\matlab\demo 目录;
  添加路径 .\Build\x64\Release\matcaffe 到 Matlab Path 中,然后运行如下命令:



im = imread('../../examples/images/cat.jpg');
scores = classification_demo(im, 1);
[score, class] = max(scores);

  得到输出:



Elapsed time is 0.073357 seconds.
Elapsed time is 0.153671 seconds.
Cleared 0 solvers and 1 stand-alone nets

  可以看出,得到了最大可能的标签为 282,0.2985.
DSC00010.png

  运行如下代码可以看到更多的分类结果细节:



figure;plot(scores);
axis([0, 999, -0.1, 0.5]);
grid on

  如图:
DSC00011.png

  经过艰难尝试,Caffe 的 windows 版和 Faster-RCNN 先后攻克,标记一下解决过程,以备后续查找。
  此外,更常见的错误是 “Invalid MEX-file '……\caffe.mexw64': 找不到指定的模块”,这个错误需要分两步解决,第一步是添加环境变量,目录为 .\Build\x64\Release;第二步是将 matcaffe 加入 matlab 的目录中(可能非必须,不加也成功过);
  修改系统环境变量时,测试失败,但重启就可以,所以加了变量还不行建议重启系统试试;如果一直不行,那么将 .\Build\x64\Release 下生成的全部文件都复制到 .\matlab\+caffe\private 下,重启 Matlab 重试,应该可以解决。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-388794-1-1.html 上篇帖子: (转载)Windows 上搭建Apache FtpServer 下篇帖子: 再见Windows C++
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表