|
发表于 2019-4-24 22:11:44
|
显示全部楼层
MatConvNet: CNNs for MATLAB 【matconvnet-1.0-beta25】
安装环境:MATLAB2016b、win64、VS2017、cuda10.1
CUDA Toolkit:https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=10&target_type=exelocal
nvidia驱动程序:https://www.nvidia.cn/Download/index.aspx?lang=cn
cudnn驱动下载:https://developer.nvidia.com/cudnn
- CUDADevice (具有属性):
- Name: 'GeForce GTX 1070 Ti'
- Index: 1
- ComputeCapability: '6.1'
- SupportsDouble: 1
- DriverVersion: 10.1000
- ToolkitVersion: 7.5000
- MaxThreadsPerBlock: 1024
- MaxShmemPerBlock: 49152
- MaxThreadBlockSize: [1024 1024 64]
- MaxGridSize: [2.1475e+09 65535 65535]
- SIMDWidth: 32
- TotalMemory: 8.5899e+09
- AvailableMemory: 7.0018e+09
- MultiprocessorCount: 19
- ClockRateKHz: 1683000
- ComputeMode: 'Default'
- GPUOverlapsTransfers: 1
- KernelExecutionTimeout: 1
- CanMapHostMemory: 1
- DeviceSupported: 1
- DeviceSelected: 1
复制代码
第一步:>> vl_setupnn
>> vl_compilenn错误使用 vl_compilenn>check_compability (line 535)
Unsupported VS C++ compiler, ver >=14.0 required (VS 2015).
出错 vl_compilenn (line 197)
check_compability(arch);
第二步:第一步错误,那么就try一下 mex -setup
>> mex -setup
错误使用 mex
未找到支持的编译器或 SDK。您可以安装免费提供的 MinGW-w64 C/C++ 编译器;请参阅安装 MinGW-w64 编译器。有关更多选项,请
访问 http://www.mathworks.com/support/compilers/R2016b/win64.html。
解决方法:
下载http://tdm-gcc.tdragon.net/download
- » tdm64-gcc-5.1.0-2.exe
- 45.8 MB · GCC 5.1.0
- Bundle installer for the TDM64 MinGW-w64 edition. Includes C, C++, and OpenMP support, SEH/SJLJ exception handling, other GNU toolchain programs (binutils), Windows API libraries (mingw-w64), GNU make (mingw32-make), and the 64-bit GNU debugger (GDB).
复制代码 右键计算机选择属性——高级系统设置——高级——环境变量,选系统变量下的“新建”,变量名写“MW_MINGW64_LOC”,变量值写之前安装TDM-GCC时的安装目录,我的放在C盘了,所以就是“C:\TDM-GCC-64”,点击确定。
我下载好的编译器:链接:https://pan.baidu.com/s/1NAHv9StJhSrh4Ms9LC2QZw 提取码:pvf6
安装好后,添加上面的环境变量;重启matlab 2016b。
- >> mex -setup
- MEX 配置为使用 'MinGW64 Compiler (C)' 以进行 C 语言编译。
- 警告: MATLAB C 和 Fortran API 已更改,现可支持
- 包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,
- 您需要更新代码以利用
- 新的 API。您可以在以下网址找到相关详细信息:
- http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
- 要选择不同的语言,请从以下选项中选择一种命令:
- mex -setup C++
- mex -setup FORTRAN
- MEX 配置为使用 'MinGW64 Compiler (C++)' 以进行 C++ 语言编译。
- 警告: MATLAB C 和 Fortran API 已更改,现可支持
- 包含 2^32-1 个以上元素的 MATLAB 变量。不久以后,
- 您需要更新代码以利用
- 新的 API。您可以在以下网址找到相关详细信息:
- http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html。
- >>
复制代码 (2)第二种策略,不用安装MinGW-w64 C/C++ 编译器,
当然也可以采用VS2017直接来进行mex,具体需要准备两个文件:msvc2017.xml、msvcpp2017.xmlmsvc2017.xml、msvcpp2017.xml可以百度网盘下载:链接:https://pan.baidu.com/s/1UnbwIbpLhBaduPXpFCe6bg 提取码:8v6b
msvc2017.xml、msvcpp2017.xml放到matlab 2016b安装目录下:D:\Program Files\MATLAB\R2016b\bin\win64\mexopts
采用如下代码:- clc,clear,close all
- root = vl_rootnn() ;
- addpath(fullfile(root, 'matlab')) ;
- addpath(fullfile(root, 'matlab', 'mex')) ;
- addpath(fullfile(root, 'matlab', 'simplenn')) ;
- addpath(fullfile(root, 'matlab', 'xtest')) ;
- addpath(fullfile(root, 'examples')) ;
- if ~exist('gather')
- warning('The MATLAB Parallel Toolbox does not seem to be installed. Activating compatibility functions.') ;
- addpath(fullfile(root, 'matlab', 'compatibility', 'parallel')) ;
- end
- if numel(dir(fullfile(root, 'matlab', 'mex', 'vl_nnconv.mex*'))) == 0
- warning('MatConvNet is not compiled. Consider running `vl_compilenn`.');
- end
- %%
- try
- % make ENABLE_GPU=y ARCH=win64 MATLABROOT=D:\Program Files\MATLAB\R2016b CUDAROOT=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1
- % vl_compilenn('enableGpu', true, 'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1')
- % vl_compilenn('enableGpu', true, ...
- % 'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1', ...
- % 'cudaMethod', 'nvcc')
- vl_compilenn('enableGpu', true, ...
- 'Debug', true, ...
- 'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1', ...
- 'cudaMethod', 'nvcc')
- catch
-
- end
- %%
- rmpath(fullfile(root, 'matlab')) ;
- rmpath(fullfile(root, 'matlab', 'mex')) ;
- rmpath(fullfile(root, 'matlab', 'simplenn')) ;
- rmpath(fullfile(root, 'matlab', 'xtest')) ;
- rmpath(fullfile(root, 'examples')) ;
复制代码 编译通过。
再次运行:- >> vl_setupnn
- >> vl_compilenn
复制代码 OK!
|
|