Windows7 下编译 MatConvNet 和 CUDA7.5
安装环境: Win7 X64 , VS 2013,Matlab 2014Ra, CUDA 7.5.18, cudnn-v4.0 ,MatConvNet 1.0-beta16/or17
------------------也可只在CPU模式下编译,不需要CUDA GPU---------------------
转载请注明原地址:点击打开链接 http://write.blog.csdn.net/postedit/49964597
MatConvNet: CNNs for MATLAB
下载 ----- http://www.vlfeat.org/matconvnet/
1.安装MatConvNet
在下载页面找到‘Quick Start’, 将代码复制进matlab运行,即可自动下载并安装。
自动安装时,程序包会被安装到Matlab/toolbox之中,不方便使用。
最好是单独下载其ZIP包,解压后放在任意位置,运行程序的时候会通过vl_setupnn()自动添加路径到Matlab中。
在examples文件夹下,可以找到相应数据集的卷积网络进行训练、或者使用。
经典模型都有,主要有Lenet、Alex、NiN、Vgg-face、VGG-F/S/M/VD、GoogleNet等CNN模型。
而且,在训练之前,程序会自动下载数据集,CIFA-10,MNIST。但ImageNet数据太大需要手动下载。
2.编译MatConvNet的CPU版本
设置matlab的C++编译器,运行mex -setup, 再提示信息中选择VS C++;
在安装根目录下找到 函数function vl_compilenn(varargin),直接运行,默认为即CPU模式下编译。
最后显示“ MEX 成功!!”; 此时可以看到根目录下的mex文件夹下出现编译后的xxx.mex64文件。
若不配置GPU,则配置就此结束!!!!! 可以到examples下进行试验~~~~~~~~
3.安装CUDA 7.5
3.1 官网下载CUDA 7.5.18、 以及 CUDA_Quick_Start_Guide.pdf
3.2 直接解压安装,其中的samples模块可安装在其他盘中,其余模块默认安装,方便MatConvNet按默认方式找 到CUDA 编译器‘nvcc’
3.3 完成后打开 cuda samples 文件夹下 Samples_vs2013.sln 分别在DEBUG 和Release X64下进行完整编译。
编译过程如提示找不到”d3dx9.h”、”d3dx10.h”、”d3dx11.h”头文件,则百度下载 DXSDK_Jun10.exe并安装。
之后再重新编译。 (可参考 http://blog.sina.com.cn/s/blog_534497fd0102vbu3.html)
3.4 全部编译成功之后,打开CUDA Samples 文件夹下的 bin/win64/release ,如下图。运行其中的小程序,即可
查看GPU CUDA信息。PASS 为通过。 %% 为节省空间可部分编译其中的子文件,如imageprocess部分
3.5 安装cudnn-win64-v4.0/or-v3.0
直接解压到某文件夹下,将cudnn64_4.dll 文件拷贝到 ./matconvnet/Matlab/mex文件夹下即可。
4.编译MatConvNet的GPU版本
在CUDA安装完成之后,即可调用 nvcc编译器 编译MatConvNet的GPU版本。
找到 function vl_compilenn(varargin) ,这是编译函数。
设置GPU编译器: opts.enableGPU =true , opts.cudaMethod = 'nvcc' ; %意思就是调用NVIDIA compiler→ nvcc
注意:需要 将新的CUDA版本号‘7.5’添加到程序(即编译函数vl_complienn)中、供其查找CUDA路径。
编译完成后,运行cnn_cifa.m文件,运行前将 opts.gpuDevice =[] , 设置为GPU index:1。即 opts.gpuDevice =1 ; 默认的[ ]为CPU模式下运行。 看到 如下输出信息,说明成功。
%%%------------补充------beta17版本编译-----------------------------------
% 0.CPU编译,mex -setup; 选择VS C++; 直接运行vl_compilenn()
% 1.安装CUDA v7.5
% 2.安装cuDNN v3.0 or 4.0
% 3.将CUDA版本号7.5添加到程序561行
% 3.将cudnn_64_4.dll(v4.0)复制到<MatConvNet>/matlab/mex下
% 4.运行编译 vl_compilenn('enableGpu',true,'cudaMethod', 'nvcc')
% 5.运行测试 vl_testnn('gpu',true)
4.i7-6700 和 GTX970 下的训练速度差别
运行Cnn_Cifa.m,选择‘nin’网络,分别再CPU和GPU模式下运行。
HZ为每秒处理图片数量。GTX970速度是 i7-6700的5~6倍。