LSTM in App Designer: predictAndUpdateState Error

12 views (last 30 days)
for i = 1:app.count
net = networks{i};
temp = dataStandardized{i};
XTrain = temp(1:app.Timer.TasksExecuted-2);
YTrain = temp(2:app.Timer.TasksExecuted-1);
net = predictAndUpdateState(net,XTrain);
[net,YPred] = predictAndUpdateState(net,YTrain(end));
[net,YPred(:,app.Timer.TasksExecuted)] = predictAndUpdateState(net,YPred(:,app.Timer.TasksExecuted-1),'ExecutionEnvironment','cpu');
%Unstandardize the predictions
YPred = app.sig{app.idxFailDs(i)}.*YPred + app.mu{app.idxFailDs(i)};
app.C(app.idxFailDs(i)) = YPred;
app.EditField.Value = "Predicted for "+ app.count +".";
app.Lamp.Color = [1 1 0];
end
I have trained several LSTM networks stored in a cell array and being called in the loop, one at a time.
However the code is not running as I want to and the Command Window says to the effect that the function predictAndUpdateState is not defined for type double arguments.
But the arguments of type double arrays in the network were tested by me in a separate live script; working perfectly fine.
Please suggest a solution for using my LSTM networks in App Designer.

Accepted Answer

cr
cr on 14 Nov 2022
The error doens't necessarily mean it cannot work with double type parameters. I may also be that it cannot find the function. Make sure the function def file is in the same directory as the app you are creating in app designer. You may check visibility of the file using which()
>> which predictAndUpdateState
  14 Comments
Ibrahim Patel
Ibrahim Patel on 19 Nov 2022
Calling the function in the app is working out. Can you please post that as an answer so that I can acknowledge you.
cr
cr on 19 Nov 2022
Edited: cr on 19 Nov 2022
Cool. You may just accept this answer. Thanks for confirming.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!