安装第三方软件最麻烦的就是调试版本的兼容性。 这个过程既繁琐又浪费时间,可谓是开工之前的折磨人的劝退过程,MatConvnet也不例外。这篇文章意在记录本人尝试在Windows10下安装Matlab, MatConvnet和运行GPU所需要安装的Cuda和cudnn。只要完全按照该操作方法执行,最后保证能正常运行。希望本篇文章对您有所帮助。
首先说明这是面向计算机小白的基础傻瓜式教程,能解释的我都会尽量解释,所以大神请在孩子的小白的陪伴下阅读或绕路。如有解释不准确的地方欢迎更正!
废话少说,上干货!
需下载软件列表:
matlab2017a or 2017b 均可,两个我都试过
MatConvNet《== 不装这个你就别看这篇文章了。。
把上面这些全下载了挨个安装。
首先解释一波,GPU是啥子? 它专门处理图像的,如果你要玩图像效果很叼的游戏,一般需要好的GPU。做图像处理的话用CPU会很慢。有多慢呢?我昨天尝试用一张700×400自拍的图和一个用ResNet训练好的style模型融合一张图片(注意仅仅是融合啊,就是只有一张照片forward pass进去,不是训练),用了10分钟时间才出结果。。。。。。。如果你想训练一个model得出结果,估计得从唐朝开始运行-_-|||…(我们曾经调侃北京的房价贵,说如果靠挣死工资,想在二环买房,您得从唐朝开始上班。。现在唐朝有多了一个任务~~). 而斯坦福的实验室用Nvidia titan X GPU,50毫秒就解决了。 所以可以想象,即便是普通的GPU,也比CPU处理速度快很多。如果你想训练model,GPU基本是必要的了。
有两点需要说明,1是Visual Studio 2015 不是必须安装的,而且目前Visual Studio的官网上似乎已经把旧版本的下载给取消了,网上找到2015版本的.iso并不容易,但是我们需要Visual Studio 2015的编译器才能编译MatConvnet。所以在看这篇文章的时候,建议您尝试下载2015版本,万一有下载就省事了,直接安装就好。只要注意在询问安装选项的时候一定要把Visual C++和里面三个东西打上勾,不然就白装了。。。
如果找不到安装也没有关系,一般干这一行的电脑里都会有安装 MS Visual C++ 2015编译器,可以在uninstall里查看。怎么操作呢?
==》win10左下角搜control panel,
==》点选Programs下的Uninstall a program
==》往下拉菜单,在Organize里找有没有一两个东西叫 Microsoft Visual C++ 2015 Redistributable的。
如果有他的话就好办了,你可以直接把Visual C++ 2015文件夹的path加到环境变量PATH里边去就好了。不然后面在尝试你编译的时候,Matlab会说找不到合适的编译器。为啥呢?因为window就是这么运作的,环境变量相当于一个全处理系统可见的路径集。Matlab在window里,当然也就能运行了。那怎么添加呢?
==》按windows键+E打开个文件夹(或者屏幕点下面的小黄文件夹图片,我喜欢快捷键显得我nb高大上不服你咬我呀~啦啦啦啦啦)
==》右键点击左侧的This PC我的电脑选择Properties属性
==》点选左侧的Advanced system settings高级系统设置
==》选择Advanced高级选项签,下面有个Environment Variables.. 环境变量..
==》打开后有上下两栏窗口,看见面的System variable系统变量,往下拉找到Path,双击打开
==》里面应该已经有一堆路径了,你只要把Visual C++ 2015的路径加进去就好了,点New新建
==》复制粘贴进来,狂点所有的okokokokokokkkkkkkkkk
如果你在上面没找到Microsoft Visual C++ 2015 Redistributable怎么办呢??
还有个不稳的办法,就是安装最近版本的Microsoft Visual Studio。官网不提供旧版本下载了,总得有最新版本下载把~,安装最新版本的Visual Studio,一般他会自带一些旧版本的编译器。比如我安装了2015的,就会有2013和2012的编译器,所以新版本里也可能有2015的编译器。安装了新版本后在uninstall里查看(上面有些怎么看),如果有的话就把那个编译器的路径加进环境变量去就好了。
那如果新版本也没有的话怎么办呢???
可以尝试直接在网上找Visual C++ 2015的编译器直接下载安装,这个我没试过,难度有点大,但是不是完全没有可能。一般编译器很小,下载安装都很快,版本不对就删了换一个装上试试。只要写着2015的都是是就好了(别再百度里试啊,有很多带病毒的,用谷歌比较保险)。
那如果旧版本没得下,电脑里没有安装Visual C++ 2015,新版本安装了没有2015编译器,网上还找不到编译器下载或者下了按上不管用怎么办呢??????????????????????????????????????????????????????????????
首先你需要给我点个赞,
然后洗洗睡吧,
你命中注定不该用MatConvnet~~ ╮(╯▽╰)╭
其2是cuDNN v5.1,换成cuDNN v6.1也可以。因为Tensorflow所支持的版本只有6.1,如果你以后有可能用Tensorflow的话,现在就直接安装v6.1把,以后可以省点事。
上面的软件全都安装好了之后,打开matlab,把左边的文件夹调到matconvnet的文件夹里,然后这么操作:
1,输入 mex -setup C++
2,输入 addpath matlab
3, 输入 vl_compilenn()
4, 如果想用CPU测试编译得怎么样的话,输入
run matlab\vl_setupnn.m
vl_testnn
然后是GPU
5, 输入 vl_compilenn(‘enableGpu’, true,…’cudaRoot’,’C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0′, …
‘cudaMethod’,’nvcc’, …
‘enableCudnn’, true, …
‘cudnnRoot’, ‘C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0’);
6,想测试gpu的话 输入
vl_testnn(‘gpu’, true);
456运行时间会稍长一些。
至此matconvnet就算安装好了。如果想看看gpu是否真的运行的话可以下载个gpu-z,在训练的时候打开,监测gpu load的情况。如果有load,cpu占用率也不高,就说明你的gpu在正常运作了。
有条件上youtube的朋友可以看看原作者的视频,他的说明里有所有的下载地址和操作步骤。
References:
https://www.youtube.com/watch?v=DWNyp1xZ-ks&t=176s
http://www.shaneahmed.com/2017/08/compile-matconvnet-on-windows.html