LSTM training problem in MATLAB
    2 views (last 30 days)
  
       Show older comments
    
    Hossein Malekahmadi
 on 24 Jul 2021
  
    
    
    
    
    Commented: Sruthi Gundeti
 on 26 Jul 2021
            Hi i tried to run LSTM with below code and i dont know why i get this error
close 
clc
% Calculating amount of test data
N = round(size(inp_train,1)*30/100);%change 0.3 for defferent amount of test data
% Seperating data for training and testing
nn_train = inp_train(1:end-N,:);
in_test = inp_train(end+1-N:end,:);
tn_test = tar_train(end+1-N:end,:);
nn_target = tar_train(1:end-N,:);
numfeatures = size(nn_train,2);
numHiddenUnits = 100;
numClasses = size(nn_target,2);
layers = [...
    sequenceInputLayer(numfeatures)
    lstmLayer(numHiddenUnits)
    fullyConnectedLayer(numClasses)
    regressionLayer];
maxEpochs = 1000;
options = trainingOptions('adam',...
    'MaxEpochs',maxEpochs,...
    'InitialLearnRate',0.0001,...
    'GradientThreshold', 0.01);
net = trainNetwork(nn_train, nn_target, layers, options);
the error:
Error using trainNetwork (line 150)
Invalid training data. Sequence responses must have the same sequence length as the corresponding
predictors.
Error in LSTM (line 30)
net = trainNetwork(nn_train, nn_target, layers, options);
and my data:

0 Comments
Accepted Answer
  Sruthi Gundeti
 on 26 Jul 2021
        Hi,
The LSTM network considers inputs as follows
No of rows= No of features
No of columns= No of Samples
No of samples for training data and target data must be same i.e., No of columns of NN_target and nn_train must be same 
You can train by using transpose of both data 
nn_train=nn_train'
nn_target=nn_target'
i.e.,net = trainNetwork(nn_train, nn_target, layers, options);
2 Comments
More Answers (0)
See Also
Categories
				Find more on Deep Learning Toolbox 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!
