How to generate C++ Code from predictAndUpdateState() function of LSTM NN?
12 views (last 30 days)
Show older comments
Hi lovely people,
we are working on a project where we want to use a Time-Series LSTM Neural Network to forecast multiple time steps in the future by using the predictAndUpdateState() function iteratively in a loop, so the network can keep its state, while on every iteration the network is fed with input from its own previous predictions and other forecast data we aquire from different sources. In general it looks like this:
net = getLSTMNN;
cT = initialValue;
numTimeSteps = 120;
XInput = (cT, getCurrentData);
for i = 1:numTimeSteps
if i ~= 1
XInput = (YPred(:,i-1), getForecastData(i-1));
end
[net,YPred(:,i)] = predictAndUpdateState(net,XInput);
end
For context: the LSTM is intended to be used as a predictor within a model predictive controller.
We are aware that the official Matlab Ref-Page of predictAndUpdateState does not list C++ Code generation as supported, only GPU CUDA Code for NVIDIA GPUs, which we cannot make use of. But there is an example where the predictAndUpdateState() of a Stateful LSTM is used to generate Code for an ARM-based Rasperry Pi (Link). Thats why we are searching for a way to generate "pure" C++ CPU Code from a predictAndUpdateState() function which is not CUDA dependent or intended for ARM systems.
Any help, advice or tips on how to achieve this would be greatly appreciated!
EDIT: We are on 2020b.
Many thanks,
Simon
0 Comments
Accepted Answer
Sindhu Karri
on 5 Mar 2021
Hii Simon,
In the example which you have mentioned, C++ code is generated with ARM Compute Library and currently there is no work around for generating C++ code for predictAndUpdateState without using ARM Compute Library.
Refer to below link to know more about code generation using ARM Compute Library
More Answers (0)
See Also
Categories
Find more on Deep Learning with Time Series and Sequence Data in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!