LSTM forecasting time series

Hi,
I'm currently learning how to use LSTM using the chicken pox example,
The data in this example is just 1 row with multiple columns. Does anyone know how I can use it with more data sets (multple row and mutiple columns).
It would be appreciate to provide the example or explanation about it.
Thank you

1 Comment

Excuse me, can I know how the test is calculated? I collected data from the accelerometer with a smartphone and I want it to work in LSTM Can you help me with many thanks

Sign in to comment.

Answers (1)

Refer to the documentation of trainNetwork to understand what should be the input and target data format & shape.
Also the following code might help you:
inputSize = [13 11 1];
nTrainSamples = 50;
filterSize = 5;
numFilters = 20;
numHiddenUnits = 200;
numResponses = 5;
layers = [ ...
sequenceInputLayer(inputSize,'Name','input')
flattenLayer('Name','flatten')
lstmLayer(numHiddenUnits,'Name','lstm','OutputMode','sequence')
fullyConnectedLayer(numResponses, 'Name','fc')
regressionLayer('Name','regression')];
lgraph = layerGraph(layers);
analyzeNetwork(layers)
%%
trainData = arrayfun(@(x)rand([inputSize(:)' 1]),1:nTrainSamples,'UniformOutput',false)';
trainLabels = arrayfun(@(x)rand(numResponses,1),1:nTrainSamples,'UniformOutput',false)';
size(trainData)
size(trainLabels)
%%
options = trainingOptions('adam', ...
'InitialLearnRate',0.005, ...
'LearnRateSchedule','piecewise',...
'MaxEpochs',300, ...
'MiniBatchSize',1024, ...
'Verbose',1, ...
'Plots','training-progress');
net = trainNetwork(trainData,trainLabels,lgraph,options);

Categories

Asked:

on 27 Sep 2020

Commented:

on 28 May 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!