[Neural network] How does neural network calculate output from net.IW, net.LW, net.b ?
3 次查看(过去 30 天)
显示 更早的评论
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 ?
0 个评论
采纳的回答
Greg Heath
2014-12-8
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
3 个评论
Greg Heath
2014-12-10
It is better to just use the random weights assigned by the program.
Otherwise, reverse the above assignment statements. For example
net.IW{1,1}= 0.01*randn(H,I);
for I input nodes and H hidden nodes.
Asaduz Zaman
2016-7-27
Helped me a lot. Couldn't find why
sim(net,input)
and
classify(net,input)
wasn't producing same response as I'm new in NNTool. Now I got it. Thanks again.
更多回答(1 个)
Greg Heath
2018-5-2
You did not consider
net.input.processFcns
and
net.output.processFcns
Search in ANSWERS and
comp.soft-sys.matlab
Hope this helps.
Greg
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Deep Learning Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!