概述
经历了多天的折腾,实现了在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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复