MatConvNet是实现计算机视觉中卷积神经网络(Convolutional Neural Networks,CNN)的MATLAB工具箱。 同CAFFE相比,MatConvNet更容易配置与使用。以下对MatConvNet工具箱的配置做较为简要的笔记。
本机配置:
Ubuntu 14.04 + MATLAB 2014A + Cuda 6.5
主要步骤:
在以上配置基础上,配置MatConvNet的主要步骤如下:
1 安装libjpeg:
sudo apt-get install libjpeg-dev
2 修改MatConvNet工具包下的makefile:ENABLE_GPU ?= y
ENABLE_IMREADJPEG ?= y
ARCH ?= glnxa64
CUDAROOT ?= /usr/local/cuda-6.5
MATLABROOT ?= /usr/local/MATLAB/R2014a
CUDAMETHOD ?= nvcc
3 编译库
一般编译
vl_compilenn
使用CUDA编译
vl_compilenn('enableGpu', true)
使用cudnn编译(路径名需要根据实际情况设置):
vl_compilenn('enableGpu', true, ...
'cudaMethod', 'nvcc', ...
'cudaRoot', '/usr/local/cuda/', ...
'enableCudnn', true, ...
'cudnnRoot', '/usr/local/cuda')
1 测试安装成功
vl_testnn
2 测试GPU可以用
vl_testnn('gpu', true)
% setup MtConvNet in MATLAB
run matlab/vl_setupnn
% download a pre-trained CNN from the web
urlwrite('http://www.vlfeat.org/sandbox-matconvnet/models/imagenet-vgg-f.mat', ...
'imagenet-vgg-f.mat') ;
net = load('imagenet-vgg-f.mat') ;
% obtain and preprocess an image
im = imread('peppers.png') ;
im_ = single(im) ; % note: 255 range
im_ = imresize(im_, net.normalization.imageSize(1:2)) ; %resize为224*224大小的矩阵
im_ = im_ - net.normalization.averageImage ; %averageImage代表ImageNet统计到的图像均值信息,为224*224*3的矩阵<pre
% run the CNN
res = vl_simplenn(net, im_) ;
% show the classification result
scores = squeeze(gather(res(end).x)) ;
[bestScore, best] = max(scores) ;
figure(1) ; clf ; imagesc(im) ;
title(sprintf('%s (%d), score %.3f',...
net.classes.description{best}, best, bestScore)) ;
参考:
http://www.vlfeat.org/matconvnet/install/