本文主要介绍Linux下Matconvnet的安装注意事项。

  最近帮老师校验一份超分的代码,用到了matconvnet深度学习工具包。代码里面使用的是Matconvnet-1.0-beta20版本, Matlab版本为2017。

在编译过程中遇到了个坑,先记录一下~

先说一下大家下载这种工具包最好是去官网下载,起初我下载的是CSDN中有人分享的包,结果报错了~~~提示说-ljpeg找不到,然而是按照官网装好了libjpeg包的。

紧接着在后面运行程序时,就出bug了

还在网上找了好多博客看,最后还是老老实实在官网重新下了Matconvnet-1.0-beta20的工具包。真是被自己蠢哭~

Matconvnet工具包下载地址: http://www.vlfeat.org/matconvnet/download/ (根据需要选择不同版本的工具包,我下载的是Matconvnet-1.0-beta20版本)

  首先,按照Matconvnet官网的安装过程来。(http://www.vlfeat.org/matconvnet/install/)安装需要的gcc,CUDA等

将下载的Matconvnet解压到指定目录。然后对其进行编译,先进行CPU版本的编译。在Matlab中打开Matconvnet工具包,使得当前目录窗口显示Matconvnet文件夹里面的子目录。

然后在命令行输入

>>> mex -setup
>>> mex -setup C++
>>> addpath matlab
>>> vl_compilenn

由此完成CPU 下matconvnet的编译。

接着进行GPU下的编译。

vl_compilenn('enableGpu', true, 'cudaRoot', '/usr/local/CUDA-8.0', 'cudaMethod', 'nvcc')

然后就报错了~~~主要有以下两个问题,主要参考 http://www.mamicode.com/info-detail-2225605.html 这篇博客中的解决方法得以解决。

  这个是因为cuda 8 之后不支持compute_20 了,最低也是compute_30了。 所以需要将vl_compilenn.m中的以下代码进行修改

opts.defCudaArch = [...
‘-gencode=arch=compute_20,code=\"sm_20,compute_20\" ‘...
‘-gencode=arch=compute_30,code=\"sm_30,compute_30\"‘];

我用的是服务器Tesla k40m, 此处修改成

opts.defCudaArch = [...
‘-gencode=arch=compute_30,code=\"sm_30,compute_30\" ‘...
‘-gencode=arch=compute_50,code=\"sm_50,compute_50\"‘];

同时还需要将 matconvnet/matlab/src/config/mex_CUDA_glnxa64.xml 里对应的地方也进行修改

NVCCFLAGS="-D_FORCE_INLINES -gencode=arch=compute_20,code=sm_20 -gencode=arch=compute_30,code=\"sm_30,compute_30\" $NVCC_FLAGS"

修改为:

NVCCFLAGS="-D_FORCE_INLINES -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_50,code=\"sm_50,compute_50\" $NVCC_FLAGS"

  这个的原因是CUDA6.0 后定义了atomicAdd 所以会出现重复定义的错误。 一共有两个文件里存在这个重复定义的问题,分别在

  pooling_gpu.cu, line 163
  (commented out atomicadd)

  bilinearsampler_gpu.cu, line 25
  (commented out atomicadd)

这个问题的解决方式是在这两个文件里定义如下的宏

#if !defined(__CUDA_ARCH__) || __CUDA_ARCH__ >= 600
#else
<... place here your own pre-pascal atomicAdd definition ...>
#endif

将如上的定义复制到如上文件里的头部, 将文件里定义的atomicadd function 剪切放在<... place here your own pre-pascal atomicAdd definition ...> 中。比如:

  另外 https://www.cnblogs.com/wangxiaocvpr/p/5385961.html 博客中第29点提到解决该问题的方法是Matconvnet版本较老,换一个较新版本。该方法试过,也是可行的。

最后,对编译好的Matconvnet进行测试。

>>> run matlab/vl_setupnn
>>> vl_testnn

以及测试GPU下的是否正确

>>> vl_testnn('gpu', true)

 

大功告成,编译成功啦~

Matconvnet安装的更多相关文章

  1. Matconvnet笔记(一)

    参考网址:http://www.vlfeat.org/matconvnet/ 内容参考博客:http://blog.sina.com.cn/s/blog_92cd3a1c0102x1ch.html M ...

  2. MatConvNet+Matlab2017a+CUDA8.0安装

    安装过程参照MatConvNet官网给出的步骤: http://www.vlfeat.org/matconvnet/install/ 1.安装CUDA8.0+cudnn6.0 参见之前的博客 2.安装 ...

  3. matlab2016b ubuntu命令行安装 + matconvnet的安装

    0. 下载安装包 下载的文件有Matlab 2016b Linux64 Crack.rar,R2016b_glnxa64_dvd2.iso,R2016b_glnxa64_dvd1.iso. 1. 拷贝 ...

  4. [深度学习][图像处理][毕设][笔记][安装环境][下载地址]安装VS2013、matconvnet、cuda、cudnn过程中产生的一些记录,2018.5.6号

    最近半个多月,被cuda等软件折磨的死去活来,昨天下午,终于安装好了环境,趁着matlab正在,在线下载VOT2016数据集,3点睡眼惺忪被闹醒后,睡不着,爬上来写这份记录. 先记录一下自己电脑的基本 ...

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

    最近因为目标跟踪实验需要得安装MatConvNet,由于已经是2019年了大家的软件版本肯定不可能是像官网要求的那样,所以安装自然而然就会碰到很多问题.在这一过程中我参考了网上很多博主的经验,有些确实 ...

  6. matlab安装matconvnet出错总结

    在安装过程中出现两种错误: mex -settup C 出错 mex -setup C 之后, vl_complilenn出错 matconv库需要autoNN和mcnExtraLayers两个库支持 ...

  7. Matconvnet环境配置一些坑

    1.先安装VS再安装matlab否则安装失败 2.cuda7.5支持MATLABR2016a/b,支持VS2013但是不支持VS2015 3.cuda8.0支持MABTLABR2017a,对应编译需V ...

  8. matconvnet编译

    1.安装matconvnet 网上教程很多 2.编译 cd matconvnet/ addpath matlab/ vl_compilenn('enableGpu',true,'cudaRoot',' ...

  9. 模式识别hw2-------基于matconvnet,用CNN实现人脸图片性别识别

    主要来源模式识别课程大作业,本文首先感谢当初的助教和一起完毕作业的队友 matconvnet在matlab下封装了CNN常见算法,网址http://www.vlfeat.org/matconvnet/ ...

随机推荐

  1. window.requestAnimationFrame与Tween.js配合使用实现动画缓动效果

    window.requestAnimationFrame 概述 window.requestAnimationFrame()这个方法是用来在页面重绘之前,通知浏览器调用一个指定的函数,以满足开发者操作 ...

  2. BZOJ3453: tyvj 1858 XLkxc(拉格朗日插值)

    题意 题目链接 Sol 把式子拆开,就是求这个东西 \[\sum_{i = 0} ^n \sum_{j = 1}^{a + id} \sum_{x =1}^j x^k \pmod P\] 那么设\(f ...

  3. Apache Windows下Apache安装步骤

    1.apache官网下载Apache HTTP Server服务器 我相信有些朋友刚用apache服务器时,都希望从官网上下载,而面对着官网上众多的项目和镜像以及目录,也许有点茫然.下面是具体步骤: ...

  4. Java 一些知识点总结

    本篇文章会对面试中常遇到的Java技术点进行全面深入的总结,帮助我们在面试中更加得心应手,不参加面试的同学也能够借此机会梳理一下自己的知识体系,进行查漏补缺(阅读本文需要有一定的Java基础).本文的 ...

  5. 关于一体机打印新加菜按钮更改为下单小票打印设置FAQ(适用正餐6.0.1.0+,轻餐4.0.6.2+)

    适用版本:正餐6.0.1.0+,轻餐4.0.6.2+ 实际场景:更新后小票设置中的打印新加菜按钮更换为下单小票打印设置,更换后,设置中,有3个选项: 1.仅打印新加菜    (选中后,订单加菜后前台小 ...

  6. Oracle EBS when-validate-record 个性化无效果

    在对FORM进行个性化时,针对对应块添加 when-validate-record ,结果做实验的时候无效果. 原因: FORM 中对应的 BLOCK 没有 when-validate-record ...

  7. App分享之微信微博等各个社交平台的分享授权规则和常见问题

    一.新浪微博分享规则 新浪微博支持分享类型: 应用内分享也就是网页分享支持: 文字,文字+图片,要分享链接需要链接添加在text里分享 客户端分享支持:文字,图片,文字+图片,图片+文字+链接 参数说 ...

  8. 常用的几条sql语句

    ### 常用的几条sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,v ...

  9. Window快捷键

    1.带windows 键 Win + E 打开文件夹 Win + R 调出运行命令 Win + T 显示任务栏,并在在其中切换 Win +Pause 显示系统属性 Win + Home 最小化 / 还 ...

  10. Ubuntu教程

    Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音.了解发音是有意义的,您不是第一个为此困惑的人,当然,也不会是最后一个:) 大多数的美国人读 ubun ...