MatConvNet是一个实现卷积神经网络(CNN)的MATLAB工具箱,用于计算机视觉应用。 用这个工具箱,能很方便地在MATLAB中用GPU来进行训练。
足够新的MATLAB版本(R2015b或更高版本)和一个支持C ++ 11的编译器(Visual Studio 2015,GCC 4.8,Xcode 7.3.1或更高版本)。 对于GPU计算,至少需要CUDA 7.5以及CuDNN v4(可选)或更新版本。
本次安装在如下实验环境中通过。
MATLAB2018a
Visual Studio 2015
matconvnet-1.0-beta25
首先下载MatConvNet,并解压到你希望的文件夹,暂且称这个文件夹为
mex -setup
mex -setup C++
>>> mex -setup C++
MEX 配置为使用 ‘Microsoft Visual C++ 2015’ 以进行 C++ 语言编译。
警告: MATLAB C 和 Fortran API 已更改,现可支持
包含 2^32-1 个以上元素的 MATLAB 变量。您需要
更新代码以利用新的 API。
您可以在以下网址找到更多的相关信息:
https://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
cd
到你解压的那个matconvnet目录
,输入下面3行cd F:\hiudawn\matlab\matconvnet-1.0-beta25
addpath matlab
vl_compilenn
>>> vl_compilenn
警告: CL.EXE not found in PATH. Trying to guess out of mex setup.
> In vl_compilenn>check_clpath (line 650)
In vl_compilenn (line 426)
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.00.23026 版
版权所有(C) Microsoft Corporation。保留所有权利。用法: cl [ 选项… ] 文件名… [ /link 链接选项… ]
Location of cl.exe (C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC..\VC\bin\amd64) successfully added to your PATH.
使用 ‘Microsoft Visual C++ 2015’ 编译。
MEX 已成功完成。
…
若干行一样的内容
…
使用 ‘Microsoft Visual C++ 2015 (C)’ 编译。
MEX 已成功完成。
到此CPU版本的就已经编译完成,在MATLAB命令行输入如下命令可以测试
vl_testnn
MATLAB | CUDA toolkit |
---|---|
R2017a | 8.0 |
R2016b | 7.5 |
R2016a | 7.5 |
R2015b | 7.0 |
你要是不知道该用哪个版本CUDA,输入下面命令,有人会告诉你
gpuDevice
vl_compilenn('enableGpu', true)
vl_compilenn('enableGpu', true, 'cudaRoot', 'yourpath/NVIDIA/CUDA-n.0')
vl_testnn('gpu', true)
如果可以就成功了
上面其实已经可以暂时使用了,这里我没GPU没法继续安装。
输入:
run <MatConvNet>/matlab/vl_setupnn
测试CPU:
vl_testnn
测试GPU:
vl_testnn('gpu', true)
安装不成功请自己参考官网
本文在Ubuntu环境下也进行了设置,并配置了GPU,用Ubuntu的话,编译器要换成:
mex -setup c
mex -setup c++
其他内容大同小异,另外我这里出了一个奇怪的错误
Error using mex
/usr/bin/ld: cannot find -ljpeg
collect2: error: ld returned 1 exit status
Error in vl_compilenn>mex_link (line 528)
mex(mopts{:}) ;
Error in vl_compilenn (line 479)
mex_link(opts, objs, mex_dir, flags.mexlink) ;