MATLAB: [Neural network] How does neural network calculate output from net.IW, net.LW, net.b

neural networks

Example I have a trained neural network as following
clear all
clc
[ x, t ] = simplefit_dataset;
net = feedforwardnet;
rng('default')
net = configure(net,x,t);
[net,tr,y,e] = train(net,x,t);
After training finished, weights will be save to net.IW, net.LW, net.b
How does the network calculate output from these weights ?
If output can be calculated as :
y=[ones(Ns,1) tansig([ones(Ns,1) x]*W1')] * W2'
Where Ns is number of training samples.
How can W1 and W2 be formed from net.IW, net.LW and net.b ?

Best Answer

I will let you figure out how to do it when the default normalization and de-normalization are not removed:
clear all, clc
[ x, t ] = simplefit_dataset;
[ I N ] = size(x) %[ 1 94 ]

[ O N ] = size(t) %[ 1 94 ]
net = fitnet; % H=10 default
rng('default') % For repeatability
% net = configure(net,x,t); % For multiple designs
A = net.input.processFcns % see below

B = net.output.processFcns % see below
% processFcns = {'removeconstantrows' 'mapminmax'}
net.input.processFcns = { }; % Remove normalization
net.output.processFcns= { };
[net,tr,y,e] = train(net,x,t);
R2 = 1-mse(e)/var(t,1) % 0.99998
IW = net.IW{1,1}
b1 = net.b{1}
b2 = net.b{2}
LW = net.LW{2,1}
y1 = b2 + LW * tansig( b1 * ones(1,N) + IW * x );
dy = max(abs(y1-y)) %2.6645e-15
Hope this helps.
Thank you for formally accepting my answer
Greg