(2)测试MatConvNet

配置完成只会,我们来进行测试,
测试脚本参考:

run matlab/vl_setupnn
net=load('F:\MatConvNet\matconvnet-1.0-beta23\models\imagenet-vgg-f.mat');%此处换成自己下载模型存储的位置
im=imread('peppers.png');
im_=single(im);
im_=imresize(im_,net.meta.normalization.imageSize(1:2));%缩放到224*224大小
im_=im_-net.meta.normalization.averageImage;
res=vl_simplenn(net,im_);
y=res(end).x;
x=gather(res(end).x);
scores=squeeze(gather(res(end).x));
[bestScore,best]=max(scores);
figure(1);
clf;
imshow(im);
title(sprintf('%s %d,%.3f',net.meta.classes.description{best},best,bestScore));

urlwrite上下载imagenet-vgg-f.mat,
imagenet-vgg-f.mat

(2)测试MatConvNet_第1张图片

更新于2016.12.17 14:32
上面的例子举例说明了使用SimpleNN包装器的模型。 更复杂的模型使用DagNN包装器。 例如,要运行GoogLeNet,
首先下载modelQuick Start - MatConvNet
(2)测试MatConvNet_第2张图片
下载好的model放在自己的matconvnet内部,再建立一个demo2脚本,
(2)测试MatConvNet_第3张图片
脚本内容如下:

% setup MatConvNet
run  matlab/vl_setupnn

% download a pre-trained CNN from the web (needed once)
urlwrite(...
  'http://www.vlfeat.org/matconvnet/models/imagenet-googlenet-dag.mat', ...
  'imagenet-googlenet-dag.mat') ;

% load the pre-trained CNN
net = dagnn.DagNN.loadobj(load('imagenet-googlenet-dag.mat')) ;
net.mode = 'test' ;

% load and preprocess an image
im = imread('peppers.png') ;
im_ = single(im) ; % note: 0-255 range
im_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ;
im_ = bsxfun(@minus, im_, net.meta.normalization.averageImage) ;

% run the CNN
net.eval({'data', im_}) ;

% obtain the CNN otuput
scores = net.vars(net.getVarIndex('prob')).value ;
scores = squeeze(gather(scores)) ;

% show the classification results
[bestScore, best] = max(scores) ;
figure(1) ; clf ; imagesc(im) ;
title(sprintf('%s (%d), score %.3f',...
net.meta.classes.description{best}, best, bestScore)) ;

运行之,稍等一会,···然而执行了好久都没反应···

你可能感兴趣的:(识别,matlab,matconvnet)