LSTM training problem in MATLAB
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hossein Malekahmadi
am 24 Jul. 2021
Kommentiert: Sruthi Gundeti
am 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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/694429/image.jpeg)
0 Kommentare
Akzeptierte Antwort
Sruthi Gundeti
am 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Statistics and Machine Learning Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!