MATLAB2017a编译MatConvNet过程中出现的各种问题

编译matconvnet过程中遇到了很多问题,写下来希望可以帮到有和我一样问题的有缘人。

系统环境:Windows7系统

CUDA 8.0 

cudnn5.1


matconvnet网上有很多下载地址,可以到官网http://www.vlfeat.org/matconvnet/

官网上也有安装和编译的过程:http://www.vlfeat.org/matconvnet/install/

电脑上一开始安装的matlab2015b,visual studio2015,后来又重新装了matlab2017a和vs2017,可能这个过程中出现了一些问题。

首先需要CPU环境下编译,正确的配置步骤很简单:

1.命令行输入以下命令,确保MATLAB已 配置为使用您的编译器

mex -setup  mex -setup C++

2.将MatConvNet的path加到matlab路径中去

cd matconvnet-master  
addpath matlab

3.编译MatConvNet

vl_compilenn  

但是中间遇到了一些问题

问题1:输入mex -setup  mex -setup C++时出现“未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器”

网上有很多解决办法,一开始我以为是版本的问题,所以就将VS2015换成了VS2017,matlab2015换成了matlab2017a,结果还是不行。又安装MinGW-w64 C/C++ 编译器,安装在C盘一级目录下,也是不行。

解决办法:后来在网上看到一方法,安装MinGW-w64时选上gcc->vision下的的选项全选上,然后安装。结果成功。

注意:这个只是单纯的解决了编译器的问题,如果配置matconvnet,不能用以上办法。matconvnet在当前版本中不支持MinGW编译器,MatConvNet不支持MinGW的原因之一是在Windows上它使用GDI +库来加速读取图像文件,所以需要安装Microsoft Visual Studio。难怪matconvnet官网上配置过程中没有提到用MinGW编译器

所以我又将MinGW卸载了,还是在matlab上配置Microsoft Visual C++ 2017以进行 C++ 语言编译。

解决办法:因为matlab 2017中默认配置不包含vs2017的编译环境,需要人为去配置

需要下载文件msvc2017.xml和msvcpp2017.xml(链接:https://pan.baidu.com/s/1ba0OMGOe9QXoPA0ji4ggJw 密码:7lrn).注意:这个文件只适合vs2017,如果配置vs其他版本,需要找到对应版本的这两个文件下载。

并将他们复制到matlab相应的目录下就行了,比如我的:D:\matlab\R2017a\bin\win64\mexopts

成功!

问题2:虽然编译环境配置好,但是matconvnet->matlab->mex下还是没有生成编译好的文件,也就是还是没有编译成功。运行vl_compilenn,出现错误提示:警告: ”CL.EXE not found in PATH. Trying to guess out of mex setup. 'cl.exe' 不是内部或外部命令,也不是可运行的程序 或批处理文件。” 

解决办法:网上找了一些解决办法,比如添加环境变量什么的,我借鉴了以为外国网友的办法

在VS2017安装目录下,比如我的:D:\Visual Studio2017\Community\VC\Tools\MSVC\14.14.26428\bin,找到里面对应自己系统的cl.exe,将此复制到matconvnet目录下即可。

终于编译成功了!


接下来我将继续在GPU环境下编译,出现任何问题还会继续更新。。

GPUB编译

需要:CUDA、CUDNN

CUDA8.0或以下不支持vs2017编译,所以我又下载了vs2015编译器

安装就按照步骤一步一步安装,如果驱动新的话,组件里可以只选CUDA(推荐)。

你可能感兴趣的:(Learning,notes)