LSTM training problem in MATLAB
4 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 Statistics and Machine 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!