%digitDatasetpath=fullfile('D:','cnn','DigitDataset');
%%digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ...
'nndatasets','DigitDataset');
imds=imageDatastore(digitdatasetpath,"IncludeSubfolders",true,"LabelSource","foldernames")
numTrainFiles = 750;
[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');
inputSize=[28 28 1];
numclass=10;
layers = [
imageInputLayer([28 28 1],"Name","imageinput")
convolution2dLayer(5,50,"Name","conv","Padding","same")
batchNormalizationLayer("Name","batchnorm")
reluLayer("Name","relu")
fullyConnectedLayer(10,"Name","fc")
softmaxLayer("Name","softmax")
classificationLayer("Name","classoutput")];
options = trainingOptions('sgdm', ...
'MaxEpochs',4, ...
'ValidationData',imdsValidation, ...
'ValidationFrequency',30, ...
'Verbose',false, ...
'Plots','training-progress');
net=trainNetwork(imds,layers,options)
YPred=classify(net,imdsValidation);
YValidation=imdsValidation.Labels;
accuracy=mean(YPred==YValidation)
有没有人能解决一下这个代码中的问题:
一.前两行数据引入中第一行为何不能引用,第二行的含义是什么?
二.在我选择了第二行作为引入数据的方法后为何要框架中的卷积核数量很大准确率才会降到百分之98以下
三.options括号里的含义问题,以及如何打出来