How can I build a 1x5x1 NN?

2 views (last 30 days)
Fernando Noguera
Fernando Noguera on 30 Aug 2014
Answered: Greg Heath on 22 Sep 2014
Hi All, I am trying to build a FF NN with delay between layers to reproduce an abstract. My aim is to build the following 3 layers NN 1x5x1 with 5 delays taps between layers (5:5). So far this is the code I used to programmed but I'm not sure my code is building the network I want. Can anybody help me to check if my design is correct? if not, any correction I may need to do?
d1=(0:5);
d2=(0:5);
dtdnn_net=distdelaynet({d1,d2},5);
[p,Pi,Ai,t]=preparets(dtdnn_net,y2,y2);
dtdnn_net.trainFcn='trainbr';
dtdnn_net.trainParam.epochs=1000;
dtdnn_net.trainParam.lr=0.01;
dtdnn_net.layers{2}.size=1;
dtdnn_net=train(dtdnn_net,p,t);
yp=sim(dtdnn_net,p);
Thank you
  1 Comment
Greg Heath
Greg Heath on 31 Aug 2014
Edited: Greg Heath on 31 Aug 2014
Why did you post this without testing it on the data indicated in
help distdelaynet
?
Why didn't you use
view(net)
as indicated in the help and doc documentation?
doc distdelaynet
Why didn't you calculate the resulting resubstitution error?

Sign in to comment.

Accepted Answer

Greg Heath
Greg Heath on 22 Sep 2014
[P,T] = simpleseries_dataset;
d1=(0:5);
d2=(0:5);
dtdnn_net = distdelaynet({d1,d2},5);
[Ps,Pi,Ai,Ts] = preparets(dtdnn_net,P,T);
ts = cell2mat(Ts);
MSE00s = var(ts',1) % 0.042348
dtdnn_net.trainFcn = 'trainbr';
dtdnn_net.trainParam.epochs = 1000;
dtdnn_net.trainParam.lr = 0.01;
dtdnn_net.layers{2}.size = 1;
rng('default')
[dtdnn_net tr Ys Es Xf Af] = train(dtdnn_net,Ps,Ts,Pi,Ai);
view(dtdnn_net)
%Ys = sim(dtdnn_net,Ps,Pi,Ai);
%Es = gsubtract(dtdnn_net,Ts,Ys)
es = cell2mat(Es);
R2s = 1-mse(es)/MSE00s % 0.9996
NOTE: Using net defaults with trainlm decreases learning time by a factor of 20

More Answers (0)

Categories

Find more on Sequence and Numeric Feature Data Workflows 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!