Matlab自带神经网络工具箱使用

具体解释有空再补

Create Deep Learning Network Architecture
Script for creating the layers for a deep learning network with:
Number of layers: 5
Number of connections: 4
Run the script to create the layers in the workspace variable layers.
To learn more, see Generate MATLAB Code From Deep Network Designer.
Auto-generated by MATLAB on 2020-04-17 14:13:00
Create the Array of Layers
layers = [ ...
    imageInputLayer([200 150 1])
    convolution2dLayer(5,20)
    reluLayer
    maxPooling2dLayer(2,'Stride',2)
    convolution2dLayer(3,20)
    reluLayer
    maxPooling2dLayer(2,'Stride',2)
    fullyConnectedLayer(9)
    softmaxLayer
    classificationLayer];
options = trainingOptions('sgdm', ...
    'MaxEpochs',60,...
    'InitialLearnRate',1e-4, ...
    'Verbose',false, ...
    'Plots','training-progress');

Plot the Layers
% plot(layerGraph(layers));

% digitDatasetPath = fullfile(matlabroot,'toolbox','nnet', ...
%     'nndemos','nndatasets','DigitDataset');
% imds = imageDatastore(digitDatasetPath, ...
%     'IncludeSubfolders',true, ...
%     'LabelSource','foldernames');


fff=zeros(200,150,1,5775);
lll=[];
% direroot ='E:/CSITool/csidata/5300/';
% direroot='D:/NUT/finger_drawing_explore/DifferentPerson/'
direroot='D:\NUT\finger_drawing_explore\DifferentPerson\'
% dilist={'20200107-finger/','20200104-finger/','20200106-finger/'};
dilist={'DataSet_few_data\'};
direlist={'0\','2\','3\','4\','5\','6\','7\','8\','9\'};
% direlist={'5/','8/','9/'};
labelist=[0,2,3,4,5,6,7,8,9];
count=1;
for j=1:length(dilist)
for i=1:length(direlist)
dlist = dir([direroot,dilist{j}, direlist{i},'*.png']);
% dlist2 = dir([direroot,dilist{j}, direlist{i},'*ph.png']);
% dlist3 = dir([direroot,dilist{j}, direlist{i},'*PDR.png']);
for f = 1:length(dlist)
%     imds.Files{count}=[direroot,dilist{j},direlist{i},dlist(f).name];
%     imds.Labels(count)=categorical(i+1);
img=rgb2gray(imread([direroot,dilist{j},direlist{i},dlist(f).name]));
[r,c,z]=size(img);
skipr=floor(r/200);
skipc=floor(c/150);
newimg=img(1:skipr:skipr*200,1:skipc:skipc*150,:);

fff(:,:,1,count)=newimg(:,:,1);

% img=rgb2gray(imread([direroot,dilist{j},direlist{i},dlist2(f).name]));
% [r,c,z]=size(img);
% skipr=ceil(r/44);
% skipc=ceil(c/33);
% newimg=img(1:skipr:r,1:skipc:c,:);
% 
% fff(:,:,2,count)=newimg(:,:,1);
% 
% img=rgb2gray(imread([direroot,dilist{j},direlist{i},dlist3(f).name]));
% [r,c,z]=size(img);
% skipr=ceil(r/44);
% skipc=ceil(c/33);
% newimg=img(1:skipr:r,1:skipc:c,:);
% 
% fff(:,:,3,count)=newimg(:,:,1);

lll(count)=labelist(i);
    count=count+1;
end
end
end

lll=lll';
lll=categorical(lll);
net = trainNetwork(fff,lll,layers,options);
% figure
% numImages = count-1;
% perm = randperm(numImages,20);
% for i = 1:20
%     subplot(4,5,i);
%     imshow(imds.Files{perm(i)});
% end
% numTrainingFiles = 50;
% [imdsTrain,imdsTest] = splitEachLabel(imds,numTrainingFiles,'randomize');
save('convnet_20210413-1.mat','net');
% net = trainNetwork(imdsTrain,layers,options);
fff2=zeros(44,33,1,180);
lll2=[];
dilist={'20200101-finger/'};
count=1;
for j=1:length(dilist)
for i=1:length(direlist)
dlist = dir([direroot,dilist{j}, direlist{i},'*.png']);
% dlist2 = dir([direroot,dilist{j}, direlist{i},'*ph.png']);
% dlist3 = dir([direroot,dilist{j}, direlist{i},'*PDR.png']);
for f = 1:length(dlist)
%     imds.Files{count}=[direroot,dilist{j},direlist{i},dlist(f).name];
%     imds.Labels(count)=categorical(i+1);
img=rgb2gray(imread([direroot,dilist{j},direlist{i},dlist(f).name]));
% [r,c,z]=size(img);
% skipr=ceil(r/44);
% skipc=ceil(c/33);
% newimg=img(1:skipr:r,1:skipc:c,:);

fff2(:,:,1,count)=newimg(:,:,1);

% img=rgb2gray(imread([direroot,dilist{j},direlist{i},dlist2(f).name]));
% [r,c,z]=size(img);
% skipr=ceil(r/44);
% skipc=ceil(c/33);
% newimg=img(1:skipr:r,1:skipc:c,:);
% 
% fff2(:,:,2,count)=newimg(:,:,1);
% 
% img=rgb2gray(imread([direroot,dilist{j},direlist{i},dlist3(f).name]));
% [r,c,z]=size(img);
% skipr=ceil(r/44);
% skipc=ceil(c/33);
% newimg=img(1:skipr:r,1:skipc:c,:);
% 
% fff2(:,:,3,count)=newimg(:,:,1);
lll2(count)=labelist(i);
    count=count+1;
end
end
end

YPred = classify(net,fff2);
YTest = categorical(lll2');

sum(YPred==YTest)/length(lll2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值