LSTM training problem in MATLAB
5 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hossein Malekahmadi
il 24 Lug 2021
Commentato: Sruthi Gundeti
il 26 Lug 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 Commenti
Risposta accettata
Sruthi Gundeti
il 26 Lug 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 Commenti
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Statistics and Machine Learning Toolbox in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!