How can I correctly calculate the outputs of the hidden layers in a neural network?

1 view (last 30 days)
I have a one hidden layer feed-forward backpropagation network. such as:
net=newff(P,T,[32],{'tansig','logsig'},'trainlm');
I trained it using a set of input data and set the output equal to the inputs. I noticed I couldn't directly access to the outputs of the hidden layer. Therefore, I wrote the following to calculate the outputs of the hidden layer:
IW = net.IW{1};
b1 = net.b{1};
h1 = tansig(IW*P + repmat(b1,H,N));
Additionally, I want to check the calculation was correct. Therefore, I continued wrote as following to calculate the outputs of output layer:
LW = net.LW{2};
b2 = net.b{2};
h2 = logsig(LW*h1 + repmat(b2,H,N));
However, the calculated outputs didn't match the simulation outputs. Can anyone help me to explain the reasons caused this?

Accepted Answer

Greg Heath
Greg Heath on 23 Oct 2015
You did not take into consideration the default normalization of the input and target as well as the default denormalization of the output.
This topic has been covered many times in both the NEWSGROUP and ANSWERS. You should be able to search and find several relevant posts.
Hope this helps.
Thank you for formally accepting my answer
Greg

More Answers (1)

tracey zhang
tracey zhang on 23 Oct 2015
Dr. Heath,
Would you like to provide me more detail info on the default normalization and denormalization?
Thank you so much, Tracey
  1 Comment
Greg Heath
Greg Heath on 23 Oct 2015
No. I have covered this topic more than once.
I would like you to practice searching in the NEWSGROUP and ANSWERS.
Hope this helps.
Greg

Sign in to comment.

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!