Neural Network - DigitClassifier                                 Home : www.sharetechnote.com

 

 

 

Digit Classifier

 

 

 

Hidden Layer Size : 30 Perceptrons

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dv = [];

for i = 0:9

    fn = sprintf('%s\\temp\\digit\\%d\\digit%d.png',pwd,i,i);

    img=imread(fn);

    imgBW = rgb2gray(img);

    subplot(2,5,i+1);

    imshow(imgBW,'InitialMagnification','fit');

    dv = [dv reshape(imgBW',[],1)];

end

set(gcf,'Position',[100 100 400 200]);

 

dv = double(dv);

dvc = [0 1 2 3 4 5 6 7 8 9]/10.0;

 

net = feedforwardnet(30);

 

 

% net = perceptron;

net.performFcn = 'mse';

net.trainFcn = 'trainlm';

net.divideFcn = 'dividetrain';

net.layers{1}.transferFcn = 'logsig';

net.layers{2}.transferFcn = 'tansig';

 

% Perform Training

 

net.trainParam.epochs =1000;

net.trainParam.goal = 10^-14;

net.trainParam.min_grad = 10^-14;

net.trainParam.max_fail = 1;

%net.trainParam.ValidationChecks = 100;

 

net = train(net,dv,dvc);

 

y = net(dv)

 

 

 

 

 

Hidden Layer Size : 30 Perceptrons

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dv = [];

for i = 0:9

    fn = sprintf('%s\\temp\\digit\\%d\\digit%d.png',pwd,i,i);

    img=imread(fn);

    imgBW = rgb2gray(img);

    subplot(2,5,i+1);

    imshow(imgBW,'InitialMagnification','fit');

    dv = [dv reshape(imgBW',[],1)];

end

set(gcf,'Position',[100 100 400 200]);

 

%dv = 1.0-double(dv)/255.0;

dv = double(dv);

dvc = [1 0 0 0 0 0 0 0 0 0;

       0 1 0 0 0 0 0 0 0 0;

       0 0 1 0 0 0 0 0 0 0;

       0 0 0 1 0 0 0 0 0 0;

       0 0 0 0 1 0 0 0 0 0;

       0 0 0 0 0 1 0 0 0 0;

       0 0 0 0 0 0 1 0 0 0;

       0 0 0 0 0 0 0 1 0 0;

       0 0 0 0 0 0 0 0 1 0;

       0 0 0 0 0 0 0 0 0 1];

 

 

net = feedforwardnet(30);

 

 

% net = perceptron;

net.performFcn = 'mse';

net.trainFcn = 'trainlm';

net.divideFcn = 'dividetrain';

net.layers{1}.transferFcn = 'tansig';

net.layers{2}.transferFcn = 'softmax';

 

 

% Perform Training

 

net.trainParam.epochs =1000;

net.trainParam.goal = 10^-14;

net.trainParam.min_grad = 10^-14;

net.trainParam.max_fail = 1;

%net.trainParam.mu = 5;

%net.trainParam.ValidationChecks = 100;

 

net = train(net,dv,dvc);

 

 

y = net(dv)

 

 

 

 

 

Next Step :