From cdb8ee20e83f023705eaec9768041f8fc0260440 Mon Sep 17 00:00:00 2001 From: v-h Date: Mon, 16 Jan 2023 07:44:54 +0100 Subject: [PATCH] added script for training alexnet --- Mokey_go_brrrr.m | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Mokey_go_brrrr.m diff --git a/Mokey_go_brrrr.m b/Mokey_go_brrrr.m new file mode 100644 index 0000000..416f5ae --- /dev/null +++ b/Mokey_go_brrrr.m @@ -0,0 +1,54 @@ +imds=imageDatastore( ... + 'SignsCutted', ... + 'IncludeSubfolders',true, ... + 'LabelSource','foldernames'); + +fprintf("Anzahl Bilder: %d\n", length(imds.Labels)); + +rng(7); +[imdsTrain, idmsValidation] = splitEachLabel(imds,0.7,'randomized'); + +fprintf("Trainingsmenge Anzahl Elemente: %d Test(Validierungs)menge: %d\n", ... + length(imdsTrain.Labels), length(idmsValidation.Labels)); + +net=alexnet; + +layersTransfer = net.Layers(1:end-3); +numClasses = numel(categories(imdsTrain.Labels)); + +layers = [ + layersTransfer + fullyConnectedLayer(numClasses, ... + 'WeightLearnRateFactor',20, ... + 'BiasLearnRateFactor',20) + softmaxLayer + classificationLayer +]; + +options = trainingOptions('sgdm', ... + MiniBatchSize=10, ... % 10 + MaxEpochs=6, ... % 6 + InitialLearnRate=1e-4, ... % 1e-4 + ValidationData=idmsValidation, ... + ValidationFrequency=3, ... % 3 + ValidationPatience=10, ... % 5 + Verbose=false, ... % false + Plots='training-progress'); + +netTransfer = trainNetwork(imdsTrain, layers, options); + +[yPred, scores] = classify(netTransfer, idmsValidation); + +idx=randperm(numel(idmsValidation.Files), 64); + +figure +for i=1 : 64 + subplot(8,8,i) + I = readimage(idmsValidation, idx(i)); + imshow(I) + label = yPred(idx(i)); + title(string(label)); +end + +accuracy = mean(yPred == idmsValidation.Labels); +fprintf("Genauigkeit: %3.2f\n", accuracy*100);