How to simulate LSTM networks?

My goal is to train the network such that it can simulate an output given the inputs only.
I've trained an LSTM for sequence to sequence regression but I can only find a prediction function to see the output.
I've messed around with sim() and predict() from the system identification toolbox but they don't seem compatible with the LSTM net.
Is there a simulation counterpart to predict() in the deep learning toolbox?
Any help greatly appreciated!

Answers (1)

Sarvani Panguluri
Sarvani Panguluri on 9 Sep 2020
Hi,
I assume you are using Sequence to sequence regression using LSTM and using the predict function is not serving your purpose. You can try using the predictAndUpdateState method. predictAndUpdateState function is used to predict time steps one at a time and update the network state at each prediction.
Hope it helps!

5 Comments

Correct me if I'm wrong but
  • Simulation computes the model response using input data and initial conditions.
  • Prediction computes the model response at some specified amount of time in the future using the current and past values of measured input and output values, as well as initial conditions.
I'm want to compute the model response with the input data and initial conditions only. In my intended application the model will only see the current/past inputs and the past outputs (through a delayed feedback loop) , hence the prediction function isn't suitable.
In that case, you can try using the sim function of deep learning toolbox.
I've tried but it seems the sim function is incompatible with the seriesnetwork object which is output from training. Following error occurs:
'model' parameter must be a character vector
Turns out I needed to use ' ' for the model input, though now I get this:
No system or file called 'net' found.
Does this mean that the sim function is incompatible with the seriesnetwork object?
hi,
sim is usually called implicitly by calling the neural network as a function. For instance, these two expressions return the same result:
y = sim(net,x,xi,ai)
y = net(x,xi,ai)
so you can try using 'net' directly instead of sim.You can refer these examples

Sign in to comment.

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Products

Release

R2020a

Community Treasure Hunt

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

Start Hunting!