本文为原创文章转载请注明出处,博主博客地址:http://blog.csdn.net/qq_20259459 和
作者( jinweizhi93@gmai.com )信息。
(如有需要可以邮件联系我)
上学期神经网最后的project有关CNN的部分我们学习使用了MatConvNet。
从名字我们就知道,Matlab Convolution Neural Network。所以就不做过多介绍了。
正文:
MatConvNet 本身是用Matlab去编译运行C++文件,所以我们需要搭建相关连接。
这里我用到的是Matlab2016a和VS2015两个平台去实现的。这里我极力推荐VS2015版本和Matlab2013以后的版本。
因为我当时尝试了VS2017不可以,VS2010可以但是必须要按照网上的相关步骤去一步一步的按照顺序的安装SDK,相当的麻烦。所以我强烈推荐大家用VS2015.因为只需要在安装的时候选上开发者工具包并一起安装就可以很简单的进行二者的搭建。
配置方法:
1. 添加MatConvNet内的相关文件夹至Matlab路径中。
2. 输入:mex -setup cpp 等待系统配置。
3. 配置成功之后,输入:vl_compilenn进行搭建相关文件。
如下图:
第二步,我们就可以利用MatConvNet自带的数据集进行训练了,不过我们当时并没有使用自带的cnn_mnist_init.m文件来做训练,我的请看下面代码。
下面是我的CNN的编程:
function cnn_mnist_NNclass(varargin)
warning off
% CNN_MNIST Demonstrated MatConNet on MNIST
% run( fullfile(fileparts(mfilename('fullpath')), '../matlab/vl_setupnn.m') ) ;
run('C:\Users\matconvnet-1.0-beta23\matconvnet-1.0-beta23\matlab/vl_setupnn.m') ;
opts.dataDir = 'data/mnist' ;
opts.expDir = 'data/mnist-baseline' ;
opts.imdbPath = fullfile(opts.expDir, 'imdb.mat');
opts.train.batchSize = 100 ;
opts.train.numEpochs = 100 ;
opts.train.continue = true ;
% opts.train.useGpu = [] ;
opts.train.gpus = [];
opts.train.learningRate = 0.001 ;
opts.train.expDir = opts.expDir ;
opts = vl_argparse(opts, varargin);
opts.train.subsetSize = 1e4; % statsogk
% --------------------------------------------------------------------
% Prepare data
% --------------------------------------------------------------------
if exist(opts.imdbPath)
imdb = load(opts.imdbPath) ;
else
imdb = getMnistImdb(opts) ;
mkdir(opts.expDir) ;
save(opts.imdbPath, '-struct', 'imdb') ;
end
% Use a subset of the images for faster training.
if opts.train