problem with closeloop Narx

1 view (last 30 days)
FRANCISCO
FRANCISCO on 6 Feb 2013
Good, and I posted the problem that I have made, I return it to post to indicate that I have not yet found a solution to this problem and have if someone can help me. The boot files are twofold:
-One contains the inputs and consists of 2272 rows by 13 columns -the other file is composed of 2272 rows by 1 column.
The code already imported the split data for direct use.
I think the problem is that the network has been trained with dimensions and to create a new input data and targets, I do not meet those dimensions and still gives me error.
The code you posted I think it works correctly because I tested with some data in compliance with the network size and predicts well.
I will try to put the code used as clear as possible to see if you can give me some idea. I continued to test and I get the same error.
if true
% PREDICTION %
xlsread p1; %matrix 1136x13
xlsread p2; %matrix 1136x13
xlsread t1; %matrix 1136x1
xlsread t2; %matrix 1136x1
p1=p1'; %matrix 13x1136
p2=p2'; %matrix 13X1136
t1=t1'; %matrix 1X1136
t2=t2'; %matrix 1x1136
nputSeries = tonndata(p1,true,false); %cell 1x1136
targetSeries = tonndata(t1,true,false); %cell 1x1136
% Create a Nonlinear Autoregressive Network with External Input
inputDelays = 1:1;
feedbackDelays = 1:1;
hiddenLayerSize = 16;
net = narxnet(inputDelays,feedbackDelays,hiddenLayerSize);
[inputs,inputStates,layerStates,targets] = preparets(net,inputSeries,{},targetSeries);
% Setup Division of Data for Training, Validation, Testing
net.divideParam.trainRatio = 70/100;
net.divideParam.valRatio = 15/100;
net.divideParam.testRatio = 15/100;
% Train the Network
[net,tr] = train(net,inputs,targets,inputStates,layerStates);
% Test the Network
outputs = net(inputs,inputStates,layerStates);
errors = gsubtract(targets,outputs);
performance = perform(net,targets,outputs);
% Closed Loop Network
netc = closeloop(net);
netc.name = [net.name ' - Closed Loop'];
NumberOfPredictions = 3;
% Creating a new input series
newInputSeries = p2(1:NumberOfPredictions); %here I built the array must be
%dimensioned 13x3
newInputSeries = [cell2mat(inputSeries(end-1:end) ) (newInputSeries)]; %
%matrix 13x5
newInputSeries = num2cell(newInputSeries); %cell 13x5
%Creating a new target
newTargetSet = nan(size(newInputSeries)); %matrix 13x5
newTargetSet = num2cell(newTargetSet );
newTargetSet (1:1) = targetSeries(end:end); %cell 13x5
% code
end
I tried to apply to normalize newInputSeries tonndata newTargetSet and out and in both cases a 1x5 matrix. Applying preparets out well but I simulate values for prediction makes me the following error:
"Error using network/sim (line 130) Layer state sizes does not match net.layers{:}.size."
Many thanks
  1 Comment
FRANCISCO
FRANCISCO on 6 Feb 2013
I tried to apply to normalize newInputSeries tonndata newTargetSet and out and in both cases a 1x5 matrix. Applying preparets out well but I simulate values for prediction makes me the following error:
"Error using network/sim (line 130) Layer state sizes does not match net.layers{:}.size."
Many thanks

Sign in to comment.

Answers (0)

Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!