MATLAB 2016b + CUDA10.1 +MatConvNet beta25 安装踩坑记

最近因为目标跟踪实验需要得安装MatConvNet,由于已经是2019年了大家的软件版本肯定不可能是像官网要求的那样,所以安装自然而然就会碰到很多问题。在这一过程中我参考了网上很多博主的经验,有些确实帮到了我,但有些真的就是把我引到了更大的坑里(说的就是那个“翻译成人话”、全篇飘着绿色字体的帖子)

这一过程实在是痛苦且漫长,今天终于靠自己看代码把问题都解决了,于是想记录一下,帮助后来的同学们。

几个重要的点:

1. 安装MatConvNet必须使用MSVC,MingW不行的。

2. 安装因为需要使用mex,所以必须使用比MATLAB版本低的Visual Studio。我一开始用的2019,后来实在没办法,卸了换2015

3. CUDA版本如果不是MATLAB官方支持的对应版本的话,不必卸了重装,因为Visual Stuidio说到底只是个IDE,卸了重装代价不大,CUDA卸了重装意味着所有依赖它的东西都得重装了,比如torch这些的。

4. 网上那些帖子,不知道博主怎么想的,非要在MATLAB命令行中输那么长的指令,实际上完全就可以改代码里的默认参数啊!!!!这样直接输vl_compilenn就行了,试错起来方便很多。

建议您继续往下阅读前试试这行命令,如果还不行再继续看:

vl_compilenn('enableImreadJpeg', true, 'enableGpu', true, 'cudaRoot', '你的CUDA目录','cudaMethod', 'nvcc', 'enableCudnn', true, 'cudnnRoot','如果你照着nvidia官网复制好了文件,这边可以也填CUDA根目录(别填local那个)','Debug','true')

好,下面开始说碰到的错误。

1. mex配置错误

  这个不多说,换老版本Visual Studio后重启就行。Visual Studio版本建议比MATLAB低一年,比如MATLAB2016的话就换成Visual Studio 2015,安装默认的组件就行(但必须得有Windows SDK)。

2. 提示nvcc fatal   : '-DNDEBUG': expected a number

  打开Debug模式就行。具体操作,改vl_compilenn第179行为“opts.debug = true;”

3. 提示nvcc fatal   : Unsupported gpu architecture 'compute_20' 

  这个憨批错误搞了我一天,网上那些帖子基本没靠谱的,有一个说直接改cudaArch的其实是挺靠谱的了,但他改错了位置。

  要解决这个错误,首先MATLAB命令行运行gpuDecive

  然后你会看到输出有一行告诉你算力的,我的是“5.2”,那么我就需要这么一行神奇的代码

  '-gencode=arch=compute_52,code=\"sm_52,compute_52\" '

  如果你是6.0就把上面的52改成60

  然后!!!改默认参数!!!!最关键的一步!!!!

  vl_compilenn第182行改成opts.cudaArch         = ['-gencode=arch=compute_52,code=\"sm_52,compute_52\" '] ;

  然后这一行下面也把这个神奇代码加进去!!!!

  当然,运行的时候就不能再输这个参数了,要不然你设置的参数就会被覆盖掉。

4. 其他问题

  直接复制,上百度搜都有。记得经常重启。

祝你们安装成功。祝大家早日摆脱matlab。

猜你喜欢

转载自www.cnblogs.com/samwoog/p/matconvnet_installation_problems.html
今日推荐