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

2 次查看(过去 30 天)
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!

回答(1 个)

Animesh
Animesh 2024-8-22
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.

类别

Help CenterFile Exchange 中查找有关 Image Data Workflows 的更多信息

产品


版本

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by