MatConvNet 主页: http://www.vlfeat.org/matconvnet/
转自:https://blog.csdn.net/qq_20259459/article/details/54093550
本文为原创文章转载请注明出处,博主博客地址:http://blog.csdn.net/qq_20259459 和
作者( jinweizhi93@gmai.com )信息。
(如有需要可以邮件联系我)
上一篇文章我直接使用了MatConvNet(去看上一篇文章:http://blog.csdn.net/qq_20259459/article/details/54092277),这里我将详细介绍和说明作为补充,以免有同学不太理解。
MatConvNet: Matlab Convolution Neural Network
官方网址: http://www.vlfeat.org/matconvnet/
介绍: MatConvNet is a MATLAB toolbox implementing Convolutional Neural Networks (CNNs) for computer vision applications. It is simple, efficient, and can run and learn state-of-the-art CNNs. Many pre-trained CNNs for image classification, segmentation, face recognition, and text detection are available. (摘录于官方网站的说明)
中文介绍:MatConvNet是一个MATLAB工具箱,提供了计算机视觉的卷积神经网络(CNN)。 它简单,高效,是一个先进的可以运行和学习的CNN。 许多预测训练的CNN网络可以用于图像分类,分割,面部识别和文本检测。
下载:
进入官网之后点击download进行下载。
文件夹介绍:
data: 读取和存放数据集的位置。
examples:
提供了几个经典的CNN网络
matlab:相关配置文件位置
utils:提供了相关的帮助工具(文件)
接下来我们需要添加相关文件夹至matlab运行路径中,包括了data,examples,matlab,utils以及相关子文件夹。
确认添加完成之后试运行examples下面的vggfaces文件夹里面的cnn_vgg_faces.m文件。直接运行后Matlab会自动下载相关数据集,位置在data下面的models里面,下载完成之后我们再次运行cnn_vgg_faces.m文件就可以得到下面的结果:
说明我们相关下载和路径配置已经完成。
下载之后就需要进行配置(安装),配置方法有两种,官网上面也有详细的介绍。查看方法:点击上方的 Getting Started -> Installing。 既可以看见相关设置方法。
这里我用到的是Matlab2016a和VS2015两个平台去实现的。这里我极力推荐VS2015版本和Matlab2013以后的版本。
因为我当时尝试了VS2017不可以,VS2010可以但是必须要按照网上的相关步骤去一步一步的按照顺序的安装SDK,相当的麻烦。所以我强烈推荐大家用VS2015.因为只需要在安装的时候选上开发者工具包并一起安装就可以很简单的进行二者的搭建。(上一篇文章有提到)
两种方法:1. CPU ; 2. GPU
1. CPU 搭建方法相对比较简单,错误相对较少,但是单排运算速度慢,适用于小的数据集。
步骤:
a) 输入:mex -setup cpp % 启动配置
b) 输入:vl_compilenn % 配置相关文件
全部通过之后就是CPU配置成功了,就可以开始相关CNN的训练了。
{
https://blog.csdn.net/marleylee/article/details/76164091
编译完之后会多了一个mex文件夹,在matlab文件夹下面
编译完之后应该有除了cudnn64_4.dll外的mexw64文件,可以看出,这些文件主要是vl_conv,vl_imreadjpeg等。这些文件是由cuda C写的,并不是由MATLAB语言写的,格式是 xx.cu。然后通过mex将这些.cu文件编译成可以由MATLAB调用的函数,也就是说mexw64就相当于MATLAB的函数文件xx.m一样了。你可以看看MATLAB下面的vl_nnconv.m,可以看到文件里面全部都是注释,这样的话,调用时咋运行的啊。原来要先编译,编译好了多了mex文件,调用时是调用mexw64文件啊。这里的cudnn64_4.dll是后面用gpu编译时用到的。
}
2.GPU的配置相对复杂不过优点就是并排运算,效率非常高,适于大的数据处理。
https://blog.csdn.net/marleylee/article/details/76164091
{
一定要下载对应matlab版本的cuda,一开始我安装最新cuda8.0出错了,我的matlab是R2016a,重新安装了最新的cuda7.5,安装在默认路径下。
配置VS2013+cuda7.5:具体参考http://blog.csdn.NET/listening5/article/details/50240147
}
a)需要先下载安装CUDA。下载地址:https://developer.nvidia.com/cuda-downloads 。
选择自己电脑的配置进行下载并按步骤安装:
b)下载安装cuDNN。下载地址:https://developer.nvidia.com/cudnn
需要进行一个简单的注册(乱填就好了),在选择版本的时候需要根据CUDA的版本来选择正确的版本(有提示)。
c)将下载好的cuDNN放在你的matconvnet的路径下面,并将cuDD里面的bin文件夹下面的cudnn64_5.dll文件复制至matconvnet的matlab里面的mex文件夹里面。
d)为cuDNN搭建配置:
在matconvnet的路径下面创建一个名字为:compileGPU 的.m文件(CODE如下):
<span style="font-family:SimSun;font-size:18px;">addpath matlab;
% % with cudnn
vl_compilenn('enableGpu', true, ...
'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0', ... % 这里填写你的CUDA的安装路径,基本上是这个位置
'cudaMethod', 'nvcc', 'enableCudnn', 'true', ...
'cudnnRoot', 'C:\Users\matconvnet-1.0-beta23\matconvnet-1.0-beta23\cudnn-8.0-windows10-x64-v5.1\cuda'); % 这里填写你的cuDNN的路径 </span>
并运行这个文件没有错误发生,证明GPU安装完成。
接下来就可以在训练数据的时候使用GPU的配置了。
(备注:如果需要比较时间,可以使用tic toc的方法来计算运行时间)
可以看出我现在已经达到了3万的Hz。比上一篇我们使用CPU的4千Hz快了接近8被左右,相当给力。