深度学习(一)MatConvNet工具包的使用

MatConvNet是Matlab上用于实现卷积神经网络(Convolutional Neural Network)的一个工具包,功能强大。
网上大多数资料都是windows下的,mac下的很少,所以将自己学习的点滴记录下来。
一开始用的是MATLAB_R2014b,貌似不支持Xcode8,干脆下载了最新版本MATLAB_R2017a,Xcode也是最新版本8.2.1,系统也是最新的macOS Sierra10.12.3。

1.getting started
这里通过一个简单但是完整的例子,用一个最新的卷积神经网络实现一个图像的分类。例子里包括下载MatConvNet工具包,编译,下载一个pre-trained的CNN模型

% 下载和编译MatConvNet
untar(['http://www.vlfeat.org/matconvnet/download/' ... 'matconvnet−1.0−beta24.tar.gz']) ;
cd matconvnet-1.0-beta23;
run matlab/vl_compilenn
% 下载一个pre-trained CNN模型
urlwrite(...
'http://www.vlfeat.org/matconvnet/models/imagenet−vgg−f.mat', ... 'imagenet−vgg−f.mat') ;
% setup MatConvNet
run matlab/vl_setupnn
% 导入下载的模型
net = load('imagenet-vgg-f.mat') ;
%将其变为simplenn的网络
%matconvnet有两种网络:还有一种为DAG 模型,
% 两个网络的不同之处在于将网络以不同的形式显示出来,后者DAG 会更直观
net = vl_simplenn_tidy(net) ;

% Obtain and preprocess an image.
%读一张图,matlab自带
im = imread('peppers.png') ;
im_ = single(im) ; % note: 255 range
%归一化大小
im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ;
% 减去图像均值,这个是输入都需要做的一项预处理工作
im_ = im_ - net.meta.normalization.averageImage ;

% Run the CNN.
% 然后把图像带进去运行一下就ok了
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.meta.classes.description{best}, best, bestScore)) ;

我的MatConvNet工具包和imagenet−vgg−f.mat模型都是单独下载解压的的,所以不需要untar和uriwrite

运行结果如下

MatConvNet的学习就算开始了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值