深度学习-MatConvNet(1)-basic

来源:互联网 发布:青云软件 编辑:程序博客网 时间:2024/05/21 21:14

主要用熟悉使用Matconvent的demo

Matconvent主要有两种可传入模型:SimpleNN,和DAG

DAG更加简便

模型下载地址:点击打开链接

然后在文件夹内把

MatConvNet 复制过来。。然后建立models和photos文件夹,并且把相应的文件放进去。

demo1:

% Load a model and upgrade it to MatConvNet current version.% 导入下载的模型net = load('models/imagenet-matconvnet-vgg-f.mat') ;%将其变为simplenn的网络%matconvnet有两种网络:还有一种为DAG 模型,% 两个网络的不同之处在于将网络以不同的形式显示出来,后者DAG 会更直观net = vl_simplenn_tidy(net) ;% Obtain and preprocess an image.%读一张图,matlab自带im = imread('photos/test.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)) ;
demo2:

DAG模型

% load the pre-trained CNNnet = dagnn.DagNN.loadobj(load('imagenet-vgg-f.mat')) ;% 切换到test模式net.mode = 'test' ;% load and preprocess an imageim = imread('peppers.png') ;im_ = single(im) ; % note: 0-255 rangeim_ = imresize(im_, net.meta.normalization.imageSize(1:2)) ;im_ = bsxfun(@minus, im_, net.meta.normalization.averageImage) ;%运行网络,可以看到和simple模式还是不一样的% 输入是 x0% run the CNNnet.eval({'x0', im_}) ;%输出是x21% obtain the CNN otuputscores = net.vars(net.getVarIndex('x21')).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)) ;
减去均值这一块好像会报错,说维度不一致。。。。




阅读全文
0 0
原创粉丝点击