How to make predictions using an already-trained LSTM model?
Mostra commenti meno recenti
Hello everyone,
I have the attached example LSTM code with the data file (omni.txt: hourly data).
I would like to know how to use the trained LSTM model to make a prediction for new data.
I think the answer lies within the lines starting from line 113, but I'm a novice with LSTM.
----------------------------------------------------------------------------------------------------------------------------------
A side question:
This code is dealing with only one input (feature) to predict its own evolution with time, How can we transform it to deal with several inputs at once?
How can we transform this code to take several inputs and predict the temporal evolution of another output?
For instance, like the feedforward backpropagation network in which it can take several inputs to predict a single output (or several outputs).
I appreciate your help!
Thank you,
Risposta accettata
Più risposte (2)
Hiro Yoshino
il 17 Gen 2020
I took a look at your script.
in the line 131, you actually update the network together with getting the prediction out of it:
[net,YPred(:,i)] = predictAndUpdateState(net,XTest(:,i),'ExecutionEnvironment','cpu');
10 Commenti
Mohamed Nedal
il 20 Gen 2020
Hiro Yoshino
il 25 Gen 2020
I have taken a further look at your code.
I suppose the way you trained the network was not right.
This is a regression problem, isn't it?
So you should have
Xtrain [numOfDataset, LengthOfPeriodYouTakeIntoAccount]
Ytrain [numOfDataset, 1]
in cell format.
You can leave the imput dimension as what it is.
Hiro Yoshino
il 28 Gen 2020
I have changed some lines as follows:
%% Prepare Predictors and Responses
%XTrain = dataTrainStandardized(1:end-1);
%YTrain = dataTrainStandardized(2:end);
[XTrain, YTrain] = timeSeriesDataForLSTM(dataTrainStandardized, 30);
and
%% Define LSTM Network Architecture
% Specify the LSTM layer to have 200 hidden units
numFeatures = 1;
numResponses = 1;
numHiddenUnits = 100;
layers = [ ...
sequenceInputLayer(numFeatures)
lstmLayer(numHiddenUnits,'OutputMode', 'last')
fullyConnectedLayer(numResponses)
regressionLayer];
The function I created for this purpose is attached. Please find it.
Mohamed Nedal
il 28 Gen 2020
Hiro Yoshino
il 29 Gen 2020
Do you understand the solution I suggested? Please check out the function and have a good understanding.
Then, you should change the data accordingly after the line 64.
I got it work until 63 by changing the data format.
Mohamed Nedal
il 7 Apr 2020
Hiro Yoshino
il 9 Apr 2020
w: window size
n: length of the signal
You're effectively creating a set of dataset by chopping the signal using the window size. So if the length of the signal is shorter than the window size, it won't work.
Mohamed Nedal
il 9 Apr 2020
Hiro Yoshino
il 9 Apr 2020
No, it is a window size with which you chop the signal into peices.
you may want to take a look at this and understand how it works:
Mohamed Nedal
il 3 Mag 2020
NGR MNFD
il 2 Lug 2021
0 voti
Hello . I hope you have a good day. I sent the article to your service. I implemented the coding part in the MATLAB software, but to implement my network, two lines of setlayers, training MATLAB 2014 give me an error. What other function do you think I should replace? Do you think the codes I wrote are correct?( I used gait-in-neurodegenerative-disease-database in physionet website.) Thanks a lot
Categorie
Scopri di più su Deep Learning Toolbox in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



