最近因为目标跟踪实验需要得安装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。

MATLAB 2016b + CUDA10.1 +MatConvNet beta25 安装踩坑记的更多相关文章

  1. mongodb c++ driver安装踩坑记

    安装教程:https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/ (1) “initializer_list” fil ...

  2. elasticsearch安装踩坑记

    ES的安装与启动时问题解决 环境: ​ 系统环境:CentOS7 ​ JDK:jdk-8u131-linux-x64.tar.gz 不可以通过Root用户来启动ES 通过上面的错误提示可以看出,can ...

  3. windows10(家庭版)+ laradock 安装踩坑记一记

    Docker 安装: 首先我们需要在系统安装 Docker 的免费社区版,官方提供 Windows.Mac 及 Linux 等版本下载:下载地址.下载操作系统对应版本后,按照引导流程安装,最后打开 D ...

  4. Android Studio安装踩坑

    title: Android Studio安装踩坑 date: 2018-09-07 19:31:32 updated: tags: [Android,Android Studio,坑] descri ...

  5. 【踩坑记】从HybridApp到ReactNative

    前言 随着移动互联网的兴起,Webapp开始大行其道.大概在15年下半年的时候我接触到了HybridApp.因为当时还没毕业嘛,所以并不清楚自己未来的方向,所以就投入了HybridApp的怀抱. Hy ...

  6. windows container 踩坑记

    windows container 踩坑记 Intro 我们有一些服务是 dotnet framework 的,不能直接跑在 docker linux container 下面,最近一直在折腾把它部署 ...

  7. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  8. centos 7( linux )下搭建elasticsearch踩坑记

    原文:https://blog.csdn.net/an88411980/article/details/83150380 概述    公司最近在做全文检索的项目,发现elasticsearch踩了不少 ...

  9. 十年老苹果(A1286)强升Catalina及Win10踩坑记(续)

    背景 自上次发布十年老苹果(A1286)强升Catalina及Win10踩坑记以来,因为后半部分-----系统安装上的细节描述过于简略,一些朋友在安装过程中总是又遇到坑,由此特意详述这一过程,让园友少 ...

随机推荐

  1. Selenium(一)自动化测试简介

    1.软件开发流程 产品分析需求--架构师确认系统包含哪些模块--开发编码--开发和测试一起做单元测试--测试开展版本(集成)测试(使用手工测试,测试通过后,才开始设计脚本)--测试开展系统测试--最后 ...

  2. ACM-ICPC 2018 南京赛区现场赛 E. Eva and Euro coins (思维)

    题目链接:https://codeforc.es/gym/101981/attachments 题意:给出两个只包含01的字符串,每次可以选择连续k个相同的数字进行翻转,问能否通过若干次操作把两个字符 ...

  3. [SaSS] Using Object like style to create class dynamiclly

    $black: #; $white: #fff; $yellow: #ffe183; $dark-red: #e70404; $dark-green: #0d8268; $cloud-blue: #d ...

  4. Pollard-Rho 总结

    将一个大数\(N\)分解质因子. 试除法,暴力枚举\(1-\sqrt{N}\)的数.时间复杂度:\(O(\sqrt{N})\). 通常,这个复杂度够了,但有时,\(N\leq10^{18}\). 这就 ...

  5. FHS 层级文件系统

  6. Archiva 不小心删掉了管理员权限怎么办

    Archiva 的界面和 UI 比较容易出问题. 在添加用户和为用户进行权限修改的时候,不小心连 admin 这个用户的权限都删掉了. 这个时候应该如何恢复 admin 这个用户的权限? 这个时候你可 ...

  7. [Luogu] 消息扩散

    https://www.luogu.org/problemnew/show/2002 Tarjan 缩点 + 入度判断 #include <iostream> #include <c ...

  8. 带发送FIFO缓冲的RX232串口发送以及把众多文件变成“黑匣子”用于其它工程的调用

    如果需要发送端不断地接收新的数据,而发送端的数据传输率低就需要一个缓冲器FIFO来缓冲数据.当你为别人做项目只是想实现功能而不想让自己的代码让别人看到,想保护自己的算法时,你可以用以下的方法.我使用的 ...

  9. CONTINUE...? ZOJ - 4033

    CONTINUE...? ZOJ - 4033 题解:先计算一下总数sum是否是偶数,如果不是则不能分出来,如果是则从后面开始分,先把人分到1.3组,分完sum / 2这些人,如果恰好能够分成零,那么 ...

  10. input输入框限制只能输入数字

    js: function onlyNumber(event){     var keyCode = event.keyCode;     if((keyCode<48&&keyC ...