我是靠谱客的博主 羞涩季节,最近开发中收集的这篇文章主要介绍MATLAB2019a配置matconvnet(Visual Studio 2017 + cuda_10.0.130_411.31_win10 + cudnn-10.0-windows10),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

经历了多天的折腾,实现了在MATLAB2019a中配置matconvnet。

一、说在前面

0. 强烈建议按照别人已走通的配置方案执行;如果独辟蹊径,做好困难准备。

1. 先说一下我用的软件

1.1 MATLAB2019a + Visual Studio2019 // 在编译CPU时出错了

1.2 MATLAB2019a + Visual Studio2017 + CUDA11.0 + Cudnn11.0 // 在编译GPU时出错了

1.3 MATLAB2019a + Visual Studio2017 + CUDA10.0 + Cudnn10.0 成功了(期间也经历了很多编译报错,稍后附上)

2.软件准备:

2.1 方式一:官网下载

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

2.2 方式二:我网盘里存放了我用到的部分软件,包括“Visual Studio2017 + matconvnet-1.0-beta25.tar.gz、cuda_10.0.130_411.31_win10.exe、cudnn-10.0-windows10-x64-v7.3.1.20.zip”

链接:https://pan.baidu.com/s/1bfjDnZP5AXN7dwkbh04VwQ 
提取码:op75

3. 感谢以下官方资料及博客资料

3.1 官方资料(此些资料,务必仔细、反复看看,细节决定了工作量)

官方配置matconvnet的步骤说明:https://www.vlfeat.org/matconvnet/install/#nvcc

官方配置CUDA的步骤说明:https://docs.nvidia.com/cuda/cuda-quick-start-guide/index.html

官方配置CUDNN的步骤说明:https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-windows

3.2 博客资料

博客资料:https://blog.csdn.net/u010493489/article/details/89218098

博客资料:https://blog.csdn.net/qq_28618765/article/details/79590040

 

二、软件安装

1 已安装了MATLAB2019a,在此基础上配置matconvnet。

1.1 我的MATLAB2019a安装路径是:E:Program FilesPolyspaceR2019abin

2 关于matconvnet的安装

2.1 获得matconvnet软件,我的是matconvnet-1.0-beta25.tar.gz

2.2 直接右键解压,将matconvnet-1.0-beta25存放在E:Program FilesPolyspaceR2019abin中

2.3 将matconvnet及其子文件的路径添加到MATLAB中

在MATLAB软件中,跳转到目录:E:Program FilesPolyspaceR2019abinmatconvnet-1.0-beta25,然后点击软件界面中的“设置路径”,点击“添加并包含子文件夹”,选择“E:Program FilesPolyspaceR2019abinmatconvnet-1.0-beta25”,点击保存。

2.4 在MATLAB软件中,跳转到目录:E:Program FilesPolyspaceR2019abinmatconvnet-1.0-beta25matlab,输入 mex -setup,查看是否会出现mex -setup C++。如果没有出现Visual studio软件,则需要安装VS。(备注:我的电脑没有VS,稍后安装)

2.5 失败经历(可以跳过)

2.5.1 安装Visual studio 2019

①我不确定是否成功安装了;因为,后续在执行mex -setup时,仍然看到不VS2019

②我曾尝试用下面的方案解决,但是我发现我的注册表中没有相应的文件夹,可能是由于我的VS2019没有安装成功;不过呢,安全起见,卸载VS2019,安装了Vs2017专业版(未配置OpenCV)

感谢该博客资料:https://blog.csdn.net/u013238941/article/details/106490969

2.6 成功安装了Visual Studio 2017

我的VS2017的安装路径:D:Program Files (x86)Microsoft Visual Studio2017Professional

特别注意:把安装目录添加到环境变量→系统变量的Path中去。

2.7 进入MATLAB中,再执行mex -setup可以看到VS2017了

2.8 接下来,输入 vl_compilenn

你将遇到一个经典报错(如果没有出现,那你比较幸运,可以去买彩票了):

问题分析:执行vl_compilenn.m文件,在查找VS2017中的cl.exe文件时,当前代码得到的路径与实际cl.exe的路径不匹配。

我的VS2017中cl.exe的真实路径为:D:Program Files (x86)Microsoft Visual Studio2017ProfessionalVCToolsMSVC14.16.27023binHostx64x64(将其添加到系统变量PAth中)

解决办法:我参考的下面的资料③(推荐使用这种方法),处理如下:

感谢这些参考资料:

① https://www.zhihu.com/question/284228755 

② https://dyfloveslife.github.io/2019/03/05/compilienn-file/

③https://blog.csdn.net/qq_31082639/article/details/104139963

2.9 成功编译vl_compilenn之后的结果:

2.10 执行测试命令:vl_testnn(打印出很多信息),最后截图:

至此:说明CPU已经编译好了。

后记:其实在此过程中,我并没有一次性通过,仍然出现了相同的cl.exe的报错,我尝试了以下参考资料;不过呢,也不知道哪一步的操作使得最后成功,比较玄乎。

感谢这些参考资料:

①https://blog.csdn.net/u010493489/article/details/89186329

②https://blog.csdn.net/u010900606/article/details/79215756?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

三 编译GPU

0. 写在前面(把官网的安装步骤仔细看看哈)

1. 首先看看自己的CUDAdevice属性

在MATLAB中输入gpuDevice,输入如下:

2 安装CUDA10.0

2.1 失败经历(可以跳过)

我最先使用的CUDA11.0和相应的cuDnn11.0,并完成了安装;

不过在MATLAB中编译GPU时,出现了经典报错:

网上有很多关于这个问题的解决办法,我尝试了,但都失败了。最终认为:当前使用的CUDA11.0 、 cuDNN11.0与MATLAB2019a或者Visual studio 2017不匹配。

因此,卸载CUDA11.0 和  cuDNN11.0,改用 CUDA10.0 和  cuDNN10.0.

2.2 先安装CUDA10.0

2.2.0 安全起见,安装路径都是默认的;并且这种操作下,会自动添加环境变量。

如果不是默认安装,要检查一下环境变量,确保把CUDA10.0的安装路径添加的系统变量Path中。

部分截图如下:

2.2.1 严格按照官网的安装步骤执行:

遇到的问题:VS2017提示:找不到Windows SDK 10.0.15063.0 // 提示可以更换SDK,更换后,执行成功了。

执行结果如下:

3 安装cuDNN10.0

3.0 写在前面:我在安装CUDA10.0之后,忘记配置它了,而是直接安装了cuDNN10.0。(不过,也没遇到啥问题)

3.1 严格按照官网的步骤安装cuDNN10.0

特别注意:

①我的cuDNN10.0路径放在了CUDA10.0中,即:C:Program FilesNVIDIA GPU Computing ToolkitCUDAcudnn-10.0-windows10-x64-v7.3.1.20cuda

②务必要把cuDNN10.0的路径添加到系统变量path中:C:Program FilesNVIDIA GPU Computing ToolkitCUDAcudnn-10.0-windows10-x64-v7.3.1.20cuda

③系统变量截图如下:

4 编译GPU

4.1 

在MATLAB中执行下面的代码:

文字版:

vl_compilenn('enableGpu', true, ...  
                'cudaRoot', 'C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0', ...  % CUDA的安装路径  
                'cudaMethod', 'nvcc', 'enableCudnn', 'true', ...  
                'cudnnRoot', 'C:Program FilesNVIDIA GPU Computing ToolkitCUDAcudnn-10.0-windows10-x64-v7.3.1.20cuda');  % cuDNN的路径 

4.2 执行了一会,出错了:

解决方案:参考资料:https://blog.csdn.net/u014292102/article/details/80331481

4.3执行了一会,又出错了:

解决方案:参考资料:https://blog.csdn.net/u013828589/article/details/72869573

4.3 再重新运行一下,成功了:

 

后记:整个过程貌似成功了,记录于此。

四 关于matconvnet的使用

0. 我拿到了一篇论文的代码,其中涉及matconvnet;刚开始运行该代码时,提示运行vl_compilenn;由于MATLAB未配置matconvnet,代码无论如何是跑不通的。

1. 我在MATLAB安装目录的bin文件夹下编译matconvnet成功之后,直接用该文件夹matconvnet-1.0-beta25替换了论文代码中的matconvnet文件夹,使得代码在matconvnet层面顺利执行;

2. 后续,根据代码中的要求,调整其他相关参数(不再涉及matconvnet),得到了代码输出结果。

 

最后

以上就是羞涩季节为你收集整理的MATLAB2019a配置matconvnet(Visual Studio 2017 + cuda_10.0.130_411.31_win10 + cudnn-10.0-windows10)的全部内容,希望文章能够帮你解决MATLAB2019a配置matconvnet(Visual Studio 2017 + cuda_10.0.130_411.31_win10 + cudnn-10.0-windows10)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部