% MNIST adatbázis CNN-nel % Adatok: digits_data.mat struktúrában. % A struktúrának 4 mezője van, ezekről a struktúra betöltése után % a parancsablakba a digits_data kifejezést gépelve kaphatunk infót. load digits_data; % Az Xtrain mezőről betöltjük a tanulóadatokat. Ezen a mezőn egy % (28x28x1x60000)-es 4D tömb van. Az X(:,:,:,i) az i-edik tanulókép lesz. X=digits_data.Xtrain; % A Ttrain mezőről betöltjük a tanulóadatokhoz tartozó targetvektort. % Ez egy 60000 elemű categorical típusú vektor. trainT=digits_data.Ttrain; % Definiáljuk a rétegeket: layers = [imageInputLayer([28 28 1]) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) convolution2dLayer(5,20) reluLayer maxPooling2dLayer(2,'Stride',2) fullyConnectedLayer(80) fullyConnectedLayer(10) softmaxLayer classificationLayer()]; % Beállítjuk a tanítás paramétereit: options = trainingOptions('sgdm','MaxEpochs',15,'InitialLearnRate',0.001); % A tanítás: convnet = trainNetwork(X,trainT,layers,options); % Az Xtest mezőről beolvassuk a tesztadatokat, és teszteljük a hálózatot Xtest=digits_data.Xtest; predT=classify(convnet,Xtest); % A Ttest mezőről beolvassuk a tesztadatokhoz tartozó targetvektort % és kiszámítjuk a pontosságot testT=digits_data.Ttest; accuracy=sum(testT==predT)/numel(testT)