how to train a CNN by a folder of 2816 images?
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
i have this code:
digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ...
'nndatasets','DigitDataset');
digitData = imageDatastore(digitDatasetPath, ...
'IncludeSubfolders',true,'LabelSource','foldernames');
figure;
perm = randperm(50,20);
for i = 1:20
subplot(4,5,i);
imshow(digitData.Files{perm(i)});
end
CountLabel = digitData.countEachLabel;
img = readimage(digitData,1);
size(img)
trainingNumFiles = 9;
rng(1) % For reproducibility
[trainDigitData,testDigitData] = splitEachLabel(digitData, ...
trainingNumFiles,'randomize');
layers = [imageInputLayer([148 210 1])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,'Stride',2)
fullyConnectedLayer(5)
softmaxLayer
classificationLayer()];
layers = [imageInputLayer([148 210 1])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,'Stride',2)
fullyConnectedLayer(5)
softmaxLayer
classificationLayer()];
options = trainingOptions('sgdm','MaxEpochs',15, ...
'InitialLearnRate',0.0001);
convnet = trainNetwork(trainDigitData,layers,options);
YTest = classify(convnet,testDigitData);
TTest = testDigitData.Labels;
accuracy = sum(YTest == TTest)/numel(TTest)
How to train this network with a file containing 2816 png images? What changes should be made to it?
0 commentaires
Réponses (1)
Harsh
le 2 Mai 2024
Hi,
Based on what you've shared, it looks like you're working on training a CNN with images stored in the folder “matlabroot\toolbox\nnet\nndemos\nndatasets\DigitDataset”.
This folder contains images for 10 different classes, each image being 28 x 28 in size. To match these specifications, kindly adjust the layers variable in your code so that the image input is set to [28 28 1], and the fully connected layer is set to 10 as shown below:
layers = [imageInputLayer([28 28 1])
convolution2dLayer(5,20)
reluLayer
maxPooling2dLayer(2,'Stride',2)
fullyConnectedLayer(10)
softmaxLayer
classificationLayer()];
Additionally, it seems like there is a duplicate declaration of the layers variable (line 28) of your code. Kindly remove the second instance of this declaration.
I hope this helps, thanks!
0 commentaires
Voir également
Catégories
En savoir plus sur Image Data Workflows dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!