matlab 深度学习环境配置
相关的软硬件或工具包:显卡驱动、显卡、matlab、vs(visual studio)、MatConvNet、CUDA、cuDNN。
1、显卡驱动:没有显卡驱动用不了显卡,所以都有显卡驱动,只需更新,一般将显卡驱动更新到最新
显卡驱动的更新链接: https://www.nvidia.com/Download/index.aspx?lang=en-us
2、显卡:显卡决定算力
关于到底是显卡决定CUDA还是显卡驱动决定CUDA:https://www.zhihu.com/question/421808195
3、matlab:深度学习平台,其版本决定CUDA的版本
matlab版本与CUDA的关系:
https://ww2.mathworks.cn/help/parallel-computing/gpu-support-by-release.html
4、vs: matlab与c++混合编程
matlab与支持的vs版本对应:https://ww2.mathworks.cn/support/requirements/previous-releases.html
5、MatConvNet :MatConvNet是一个MATLAB工具箱,为计算机视觉应用实现了卷积神经网络(CNN)。它简单,高效,并且可以运行和学习最新的CNN。提供了许多用于图像分类,分割,面部识别和文本检测的预训练CNN。安装最新的版本:matconvnet-1.0-beta25
链接:http://www.vlfeat.org/matconvnet/download/matconvnet-1.0-beta25.tar.gz
6、CUDA: 工具包,是用于英伟达显卡的并行计算框架
显卡驱动确定CUDA版本
显卡驱动与CUDA关系查看:
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
CUDA历史版本下载:
https://developer.nvidia.com/cuda-toolkit-archive
7、cuDNN: 专门用于神经网络的加速包
CUDA与cuDNN关系查看:https://developer.nvidia.com/rdp/cudnn-archive
所以环境配置步骤总结如下:先将显卡驱动更新到最新,然后根据matlab版本号确定支持的vs版本和CUDA版本,最后根据选择的CUDA版本确定cuDNN。
以我本次配置为例:更新显卡驱动到456.38;matlab2020a ——> vs2019和CUDA v10.1 ——>cuDNN v8.0.4;下载matconvnet-1.0-beta25;
安装
CUDA和cuDNN安装参考:https://zhuanlan.zhihu.com/p/94220564?utm_source=wechat_session
测试
参考1:https://blog.csdn.net/hiudawn/article/details/80381503
参考2:https://blog.csdn.net/HunterLiXiaoLong/article/details/104581756#comments_12019680
CPU测试报错容易解决,主要是环境变量的添加,可在网上找到解决方案。
GPU测试,主要困扰我的报错类似下图:
不过仔细看里面有具体如下错误:
解决方案参考:https://blog.csdn.net/calvinpaean/article/details/84937613
解决后会出现大量warning,忽略不管,最后仍会编译成功。
相关命令:
%% CPU编译
mex -setup
mex -setup C++
%
cd D:\matcovnet\matconvnet-1.0-beta25
addpath matlab
vl_compilenn
%% CPU测试
vl_testnn
%% GPU编译
% cd matconvnet/;
% >> addpath matlab/;
% >> vl_compilenn('enableImreadJpeg', true, 'enableGpu', true, 'cudaRoot', [这里填你的cuda路径到版本v],...
% 'cudaMethod', 'nvcc', 'enableCudnn', true, 'cudnnRoot', [这里填你的cudnn路径,其他博主都填的local的那个路径]);
vl_compilenn('enableGpu', true,'Debug',true', ...
'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1','cudaMethod','nvcc','enableCudnn',true,...
'cudnnRoot','D:\matcovnet\matconvnet-1.0-beta25\local\cuda');
%% GPU测试
vl_testnn('gpu', true)