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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值