一文解决matlab配置和matconvnet可能遇到的所有问题

目录

下载Matconvnet

安装和编译Matconvnet

下载CUDA和cudnn的安装包

安装CUDA和cudnn

编译vl_compilenn


  1. 下载Matconvnet

    https://www.vlfeat.org/matconvnet/download/

    在上述网址选择Matconvnet进行安装

  2. 安装和编译Matconvnet

    https://www.vlfeat.org/matconvnet/install/

    参照官网的步骤进行

    首先解压安装到自定义的目录下;接着调用到matconvnet的目录下

    在Matlab命令行依次输入指令:

    run <Matconvnet>/matlab/vl_setupnn

    mex -setup

    选择mex -setup C++

    配置完语言后,添加路径

    编译时需要注意将cl.exe的路径是在VS\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64

    所以第一种方法是将 vl_compilenn.m文件的647行修改成图上的路径;

    第二种是将cl.exe复制到647行的文件夹下即可

    (最终的原因是因为VS2017与VS2015的路径设置不同,matlab认准的是VC\bin\amd64)

  3. 下载CUDA和cudnn的安装包

    接下来是对CUDA和cudnn进行下载

    这里需要注意MATLAB与CUDA对应的版本

    我使用的是R2019b所以安装CUDA10.1

    再查询显卡支持的版本

    得知显卡最高支持11.0,所以完全可以安装CUDA10.1版本

    安装路径不建议去官网下载,在这里下载的网上寻找的资源

    链接:https://pan.baidu.com/s/1hREGDO9oA7A65s3iu6uXGg

    提取码:ntbn

    来自 <https://blog.csdn.net/zhangxiao123qqq/article/details/108273006?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-1.control>

  4. 安装CUDA和cudnn

    CUDA下载完成后,直接双击exe安装,然后一步步操作即可,选择精简安装,安装完成后,打开cmd输入:nvcc -v 查看CUDA是否安装成功,如果成功的话会返回CUDA的版本号

    接下来安装cudnn

    将cudnn的三个文件夹直接复制到如图所示的CUDA文件夹下即可

    检查是否安装成功:

    桌面处按住Shift键,鼠标右键,选择“在此处打开Powershell窗口”。然后输入:“nvidia-smi”

    恭喜已经成功安装!

  5. 编译vl_compilenn

    1.接下来编译matconvnet,但是会出错,报错信息提示如下

    >> vl_compilenn('enableGpu', true)

    使用 'nvcc' 编译。

    错误使用 mex

    nvcc fatal   : '-DNDEBUG': expected a number

    出错 mexcuda (line 157)

    [varargout{1:nargout}] = mex(mexArguments{:});

    出错 vl_compilenn>mexcuda_compile (line 603)

    mexcuda(args{:}) ;

    出错 vl_compilenn (line 489)

    mexcuda_compile(opts, srcs{i}, objfile, flags) ;

出现该问题使用DEBUG模式解决,牺牲部分性能

第179行:opts.debug            = true;

使用debug模式解决

2.接下来还会遇到如下问题:

d:\matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datamex.hpp(19): fatal error C1083: 无法打开包括文件: “gpu/mxGPUArray.h”: No such file or directory

nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.

datamex.cu

错误使用 vl_compilenn>nvcc_compile (line 615)

Command "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin\nvcc" -c -o "D:\Matconvnet\matconvnet-1.0-beta25\matlab\mex\.build\bits\datamex.obj"

"D:\Matconvnet\matconvnet-1.0-beta25\matlab\src\bits\datamex.cu" -DENABLE_GPU -DENABLE_DOUBLE -DENABLE_CUDNN -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\include" -g -DDEBUG -D_FORCE_INLINES

--std=c++11 -I"D:\Matlab\extern\include" -I"D:\Matlab\toolbox\distcomp\gpu\extern\include" -gencode=arch=compute_75,code=\"sm_75,compute_75\"  --compiler-options=/MD

--compiler-bindir="D:\VisualStudio\VC\Tools\MSVC\14.16.27023\bin\Hostx64"  failed.

出错 vl_compilenn (line 487)

nvcc_compile(opts, srcs{i}, objfile, flags) ;

问题原因:matlab版本太高的缘故,(MatlabDir)\extern\include,此路径下不存在“gpu/mxGPUArray.h”,这个文件被移动到了 (MatlabDir)\toolbox\distcomp\gpu\extern\include 路径下

解决方法:在 (MatlabDir)\extern\include 路径下建一个“gpu”文件夹然后把(MatlabDir)\toolbox\distcomp\gpu\extern\include\gpu下的mxGPUArray.h文件拷到所建gpu里即可

3.错误使用 mex

'D:\Matconvnet\matconvnet-1.0-beta25\matlab\mex\vl_nnconv.mexw64' 使用了 '-R2018a' 进行编译并与 '-R2017b' 链接在一起。 有关详细信息,请参阅 MEX 文件使用了一个 API 进行编译并与另一个 API 链接在一起。

出错 vl_compilenn>mex_link (line 627)

mex(args{:}) ;

出错 vl_compilenn (line 500)

mex_link(opts, objs, flags.mex_dir, flags) ;

解决方法

解决方案:修改vl_compilenn.m中第359行

原代码:

flags.mexlink = {'-largeArrayDims','-lmwblas'} ;

改成:

flags.mexlink = {'-lmwblas'} ;

即可。

4.|| 和 && 运算符的操作数必须能够转换为逻辑标量值。

出错 vl_compilenn (line 507)

if strcmp(arch, 'win64') && opts.enableCudnn

解决方法

直接将上述代码行的“&&”修改成“&”

5.错误使用 copyfile

未找到匹配的文件。

出错 vl_compilenn (line 509)

copyfile(fullfile(opts.cudnnRoot, 'bin', '*.dll'), flags.mex_dir);

解决方法:

 vl_compilenn('enableGpu',true,'cudaRoot','C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1','cudaMethod' ,'nvcc','enableCudnn','true','cudnnRoot','C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1')

全部使用绝对路径,写到文件夹下

vl_compilenn('enableGpu', true, ...

      'cudaRoot', ' D:\Program Files\MATLAB\CUDA\9.1(你的CUDA路径)', ...

      'cudaMethod', 'nvcc',...

      'enableCudnn', true, ...

      'cudnnRoot', ' D:\Program Files\MATLAB\matconvnet\local\cudnn-9.1(你的CUDNN全路径)');

接下来就运行成功了!

MATLAB配置matconvnet相关推荐

  1. GPU配置MatConvNet(ECO代码)

    ECO配置GPU运行 win10+matlab2020a+vs2015+cuda10.0 运行GPU版本的ECO出现以下错误 发现是GPU配置MatConvNet问题,所以要在matlab配置一下Ma ...

  2. win7(低版本显卡GeForce 610M)配置MatConvNet

    1.环境搭建 1.1 下载安装vs2013 1.2 下载安装matlabR2014a 1.3 下载安装cuda7.5 1.3.1 CUDA 7.5 安装 1.运行cuda_ 7.5.18_window ...

  3. 在windows上Matlab 编译MatConvNet

    windows 10 64 bits matlab 2015b/2016a MatConvNet 1.0-beta20 或者从github 下载GIT repository CUDA GPU Comp ...

  4. matlab 配置mex 识别vs2015

    问题:先安装了matlab,后装了vs13和vs15,但是mex -setup时却不能识别vs15,采用了两种办法,最终得以识别. 解决方案:先采用方法: http://blog.csdn.net/y ...

  5. opencv matlab配置,MATLAB配置mexopencv

    平台:win10 x64+VS 2015+Matlab R2018b+opencv_python-3.4.1+mexopencv3.4.1 问题来源:最近在做图像拼接的论文, 在opencv中有很多现 ...

  6. Matlab配置libsvm并实现官方教程

    文章导航 libsvm的安装 官方教程 一个简单的测试实例 libsvm的安装 libsvm是一个实现了SVM支持向量机的库,可以在MATLAB上配置调用,以下是我的安装流程,包括记录一下在安装过程中 ...

  7. cvid matlab,WAKE-WIN10-SOFT-软件-Matlab配置及工具箱

    1Matlab 1,1Matlab下载,安装,配置,,, 1,2 2工具箱 2,1LibSVM 必应:https://www.bing.com/search?q=libsvm&qs=n& ...

  8. opencv matlab配置,Matlab下运行c++程序的配置(包含opencv的c++程序)

    本文使用的是matlab2012b.VS2010和OpenCV249 1.打开matlab 2.输入mex -setup Welcome to mex -setup.  This utility wi ...

  9. Caffe+Matlab配置

    一.caffe与matlab接口 首先是安装matlab,然后是进行caffe与matlab的接口: 1 安装好matlab--按照正常步骤进行安装即可 2 修改Makecaffe.config--编 ...

  10. 使用matlab版卷及神经网络 MatconvNe和预训练的imageNet进行图像检Image retrieval using MatconvNet and pre-trained imageNet

    代码:CNN-for-Image-Retrieval. 2015/12/31更新:添加对MatConvNet最新版version 1.0-beta17的支持,预训练的模型请到Matconvnet官网下 ...

最新文章

  1. C语言——第0次作业(二)
  2. websocket检测服务器是否断开_websocket – 如何检测用户是否因网络断开而离开Phoenix通道?...
  3. python绘制折线图显示数据_漂亮图表也可用python信手拈来!一文教你学会用Python绘制堆积折线图...
  4. cuda11.0 cudnn 11.0 torch1.7.1+cu110 torchvision 0.8.2+cu110 安装包
  5. 在线手机号码VCF批量导入工具
  6. 读书笔记《程序员修炼之道》
  7. android系统硬件OpenGL 3D移植(二)
  8. onerror捕获异常
  9. 【ML入门系列】(一)训练集、测试集和验证集
  10. 前端程序员专用的在线工具箱
  11. 有道无术,术可求;有术无道,止于术
  12. [SDOI2015] 星际战争
  13. vmware虚拟机删除光驱启动报错解决办法
  14. 解决vmware下虚拟机关机重启ip改变
  15. 降维打击!记录我在大二的腾讯面试
  16. IE 调试工具 IETester+DebugBar
  17. 如何取消(或关闭)win2003中的ie增强安全配置
  18. android 友盟统计动态设置渠道,Android 友盟多渠道打包
  19. Windows 下安装 Ubuntu 双系统
  20. 你的孤独,虽败犹荣 摘抄

热门文章

  1. Word中英语音标出现乱码情况,解决办法
  2. 计算机enter代表什么意思,enter是什么意思
  3. 很好用的邮件发送软件mutt
  4. uchome 不用每次都更新缓存的方法
  5. 如何在DOS系统中进入phpStudy的MySQL ?
  6. exynos4412,tegra3,msm8960性能对比,参考对照exynos4210
  7. 掷骰子python代码_掷骰子游戏,,游戏规则:玩家投掷两个骰
  8. 如何在WordPress中使用SEO写作助手来改善SEO
  9. 在线ai伪原创文章生成助手
  10. 全国计算机能力挑战赛含金量高吗,大学里,有哪些含金量高,又容易得奖的国家级比赛?...