What is the difference between the ways of Predict and PredictAndUpdateState to update the network?

3 views (last 30 days)
Hi All,
I am testing a trained LSTM network to finish the prediction task. I have used prerdict() and PredicAndUpdateState() to do the prediction respectively. The codes for both ways are as follows respectively:
(1). Using predict ()
YTest=predict(trainedNet,XTest); % XTest is the complete test data, which is a numeric array with the size of [16 x 272].
(2). Using PredictAndUpdateState()
for i=1:size(XTest,2)
Xt=XTest(:,i); % One coloum of XTest is extracted as the inputs of this timestep.
[trainedNet,YTest(:,i)]=PredictAndUpdateState(trainedNet,Xt); % Use the inputs of this timestep to predict the outputs, and update the network.
end
The test performance of using PredictAndUpdateState() is much worse than using predict(). But I have heard that both predict() and PredictAndUpdateState() will update the state of the network between each prediction. So, I wonder why the performances of those two functions are so different, and what is the difference between the ways of predict() and PredictAndUpdateState() to update networks.
Any help will be appredicted. Thank you so much!

Answers (1)

Animesh
Animesh on 22 Aug 2024
Hey @Jinjian,
I have answered your question about the difference between 'predict' and 'predictAndUpdateState' here:
Now, regarding the poor performance of 'predictAndUpdateState': According to the following MathWorks documentation, the 'predict' function uses 'dlnetwork' objects, whereas the 'predictAndUpdateState' function uses 'LayerGraph' and 'trainNetwork' workflows. Training and prediction with 'dlnetwork' objects are typically faster than with 'LayerGraph' and 'trainNetwork' workflows.

Categories

Find more on Image Data Workflows in Help Center and File Exchange

Products


Release

R2024a

Community Treasure Hunt

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

Start Hunting!