MATLAB Answers

Not able to train closed-loop for Narnet timeseries.

1 view (last 30 days)
Shashank Bhatia
Shashank Bhatia on 20 Aug 2018
I am not able to train narnet to make closed-loop.
Error is as follows:
  1. * Error using zeros
  2. * Requested 1x6166784512 (45.9GB) array exceeds maximum array size preference. Creation of arrays greater than this
  3. * limit may take a long time and cause MATLAB to become unresponsive. See array size limit or preference panel for
  4. * more information.
  5. *
  6. * Error in nnMex.perfsJEJJ>iJacobianFunctionForDirection (line 45)
  7. * TEMP = zeros(1,ceil(hints.tempSizeFJ/8)*8);
  8. *
  9. * Error in nnMex.perfsJEJJ (line 8)
  10. * [jacobian, TEMP] = iJacobianFunctionForDirection( direction, hints );
  11. *
  12. * Error in nnCalcLib/perfsJEJJ (line 388)
  13. * lib.calcMode.perfsJEJJ(calcNet,lib.calcData,lib.calcHints);
  14. *
  15. * Error in trainlm>initializeTraining (line 165)
  16. * [worker.perf,worker.vperf,worker.tperf,worker.je,worker.jj,worker.gradient] = calcLib.perfsJEJJ(calcNet);
  17. *
  18. * Error in nnet.train.trainNetwork>trainNetworkInMainThread (line 28)
  19. * worker = localFcns.initializeTraining(archNet,calcLib,calcNet,tr);
  20. *
  21. * Error in nnet.train.trainNetwork (line 16)
  22. * [archNet,tr] = trainNetworkInMainThread(archNet,rawData,calcLib,calcNet,tr,feedback,localFcns);
  23. *
  24. * Error in trainlm>train_network (line 156)
  25. * [archNet,tr] = nnet.train.trainNetwork(archNet,rawData,calcLib,calcNet,tr,localfunctions);
  26. *
  27. * Error in trainlm (line 55)
  28. * [out1,out2] = train_network(varargin{2:end});
  29. *
  30. * Error in network/train (line 369)
  31. * [net,tr] = feval(trainFcn,'apply',net,data,calcLib,calcNet,tr);
My Code is as follows:
T=tonndata(sdatat(1:end,1),false,false);
delay=[1:706];
hiddenlayersize=6;
trainFcn='trainlm';
net=narnet(delay,hiddenlayersize,'open',trainFcn);
net.divideFcn='divideblock';
net.trainParam.epochs = 3000;
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
net.trainParam.min_grad=1e-7;
net.trainParam.max_fail=100;
net.performFcn = 'mse';
net.performParam.normalization = 'standard';
net.input.processFcns={'removeconstantrows','mapminmax'}
[Xso,Xio,Aio,Tso]=preparets(net,{},{},T);
rng('default')
net=train(net,Xso,Tso,Xio,Aio);
[Yso,Xfo,Afo]=net(Xso,Xio,Aio);
[netc,Xic,Aic]=closeloop(net,Xfo,Afo);
[Xc,Xic,Aic,Tc] = preparets(netc,{},{},T);
netc=train(netc,Xc,Tc,Xic,Aic);
This step causes the above error.
Please suggest where I am committing mistakes.
Thanks

Answers (0)

Community Treasure Hunt

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

Start Hunting!