can you help me to solve this ?

can you help me, i use ann for classification of blood type.
Then i used nntool in matlab with my data, i get the result like this
but why every time I run the program again, i get different results?
can you help me ?

Risposte (1)

Walter Roberson
Walter Roberson il 17 Giu 2020

0 voti

This is expected. Those kinds of neural networks initialize the weights randomly by default.
You have three choices:
  1. Leave it the way it is now that you know that it is intended design;
  2. Use rng() to initialize the same random number seed before each run;
  3. Or initialize the weights yourself

7 Commenti

Yudawan Hidayat
Yudawan Hidayat il 17 Giu 2020
Modificato: Yudawan Hidayat il 17 Giu 2020
what should I add to this code? if I choose the second or third choice?
this is my code sir, I hope you can help me, sorry i'm new in matlab and ann
x = input;
t = target;
% Choose a Training Function
% For a list of all training functions type: help nntrain
% 'trainlm' is usually fastest.
% 'trainbr' takes longer but may be better for challenging problems.
% 'trainscg' uses less memory. Suitable in low memory situations.
trainFcn = 'trainscg'; % Scaled conjugate gradient backpropagation.
% Create a Pattern Recognition Network
hiddenLayerSize = 65;
net = patternnet(hiddenLayerSize);
% Choose Input and Output Pre/Post-Processing Functions
% For a list of all processing functions type: help nnprocess
net.input.processFcns = {'removeconstantrows','mapminmax'};
net.output.processFcns = {'removeconstantrows','mapminmax'};
% Setup Division of Data for Training, Validation, Testing
% For a list of all data division functions type: help nndivide
net.divideFcn = 'dividerand'; % Divide data randomly
net.divideMode = 'sample'; % Divide up every sample
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
% Choose a Performance Function
% For a list of all performance functions type: help nnperformance
net.performFcn = 'crossentropy'; % Cross-Entropy
% Choose Plot Functions
% For a list of all plot functions type: help nnplot
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ...
'plotconfusion', 'plotroc'};
% Train the Network
[net,tr] = train(net,x,t);
% Test the Network
y = net(x);
e = gsubtract(t,y);
performance = perform(net,t,y)
tind = vec2ind(t);
yind = vec2ind(y);
percentErrors = sum(tind ~= yind)/numel(tind);
% Recalculate Training, Validation and Test Performance
trainTargets = t .* tr.trainMask{1};
valTargets = t .* tr.valMask{1};
testTargets = t .* tr.testMask{1};
trainPerformance = perform(net,trainTargets,y)
valPerformance = perform(net,valTargets,y)
testPerformance = perform(net,testTargets,y)
% View the Network
view(net)
% Plots
% Uncomment these lines to enable various plots.
%figure, plotperform(tr)
%figure, plottrainstate(tr)
%figure, ploterrhist(e)
%figure, plotconfusion(t,y)
%figure, plotroc(t,y)
% Deployment
% Change the (false) values to (true) to enable the following code blocks.
% See the help for each generation function for more information.
if (false)
% Generate MATLAB function for neural network for application
% deployment in MATLAB scripts or with MATLAB Compiler and Builder
% tools, or simply to examine the calculations your trained neural
% network performs.
genFunction(net,'myNeuralNetworkFunction');
y = myNeuralNetworkFunction(x);
end
if (false)
% Generate a matrix-only MATLAB function for neural network code
% generation with MATLAB Coder tools.
genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes');
y = myNeuralNetworkFunction(x);
end
if (false)
% Generate a Simulink diagram for simulation or deployment with.
% Simulink Coder tools.
gensim(net);
end
For the second choice, at the top of the code add
rng(655321)
still not working sir, the results are still different
Can you attach your input values for testing?
The problem has been resolved, sir
thanks you
but i have a new problem
I am using ANN tool box (nnstart) pattern recognition tool(nprtool). I trained ANN with input data (24×40 matrix) and target data (2×40 matrix).The algorithm itself dividing it into training,validation,test data. I followed the steps in tool box (nnstart) and finally the network was trained. Then it produced confusion plot and other.
My query is how to test the data from the real world after training the network with the above input and target data?
(Reminder to myself)

Accedi per commentare.

Categorie

Scopri di più su Deep Learning Toolbox in Centro assistenza e File Exchange

Richiesto:

il 17 Giu 2020

Commentato:

il 20 Lug 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by