我是靠谱客的博主 年轻星星,最近开发中收集的这篇文章主要介绍matlab能做深度图像的识别吗,Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类...,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Matlab2017中,完成一个使用CNN网络进行分类的示例非常简单。为了便于创建图像集,Matlab2015引入了ImageDatastore对象,实现函数为imageDatastore,该函数可以轻易的完成遍历一个文件夹中的图像建立图像及的功能,不管该文件夹是否含有子文件夹。这也是它区别于imageSet的地方之一。代码如下。

%exam1.m

digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos',...

'nndatasets','DigitDataset');

%创建图像集,参数设置为包含子文件夹、子文件夹名作为类标签

digitData = imageDatastore(digitDatasetPath,...

'IncludeSubfolders',true,'LabelSource','foldernames');

figure;

%取20个置乱数字

perm = randperm(10000,20);

%显示20幅图像

for i = 1:20

subplot(4,5,i);

imshow(digitData.Files{perm(i)});

end

trainingNumFiles = 750;

%若报错,可改为rng('default')

rng(1)

%在图象集每一类中随机取trainingNumFiles个图像作为训练图像,其余作为测试图像

[trainDigitData,testDigitData] = splitEachLabel(digitData,...

trainingNumFiles,'randomize');

%创建简单CNN网络

layers = [imageInputLayer([28 28 1]);

convolution2dLayer(5,20);

reluLayer();

maxPooling2dLayer(2,'Stride',2);

fullyConnectedLayer(10);

softmaxLayer();

classificationLayer()];

%设置训练参数

options = trainingOptions('sgdm','MaxEpochs',20,...

'InitialLearnRate',0.0001);

%训练CNN网络

convnet = trainNetwork(trainDigitData,layers,options);

%对测试图像进行分类

YTest = classify(convnet,testDigitData);

%显示测试图像标签

TTest = testDigitData.Labels;

最后

以上就是年轻星星为你收集整理的matlab能做深度图像的识别吗,Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类...的全部内容,希望文章能够帮你解决matlab能做深度图像的识别吗,Matlab图像识别/检索系列(6)-10行代码完成深度学习网络之基于CNN的图像分类...所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部