Import Keras Tensorflow Model into Simulink

I've got a trained model from Python, which I need to run on Simulink for my application.
Is it possible to import trained Tensorflow Keras models and implement them in Simulink?
Cheers,
Lucas

 Accepted Answer

Hi,
You can import your keras network using
net = importKerasNetwork(modelfile)
net = importKerasNetwork(modelfile,Name,Value)
model file can .h5 format ot json format with weights
Then write a entry level function for the imported network
function out = resnetFun(in)
persistent mynet;
if isempty(mynet)
mynet = coder.loadDeepLearningNetwork('resnet50', 'myresnet');
end
out = predict(mynet,in);
You can integrate MATLAB function into your Simulink model using the MATLAB Function Block.
You can execute your MATLAB code from within the model to read the input data from your sensor and then pass this data into your Simulink block.
Refer to this example on how to use a MATLAB function block in your model.

2 Comments

Thank you for your help! I've imported my regression model and accordingly a placeholder layer is inserted on top of the model. I need a sequence input layer to replace the placeholder, is that possible? From the documentation I only see an image input layer available.
VxNet=importKerasNetwork('Network.json','WeightFile','Network.h5','OutputLayerType','regression')
This can import a regression network

Sign in to comment.

More Answers (1)

Hi,
Is it possible to use this method to generate code for a microcontroller in c / c ++? Thank you.

2 Comments

Thanks, yes, is possible, my keras NN is working perfectly in a STM32!
Hi, Fernando, Could you post how you put it in the simulink? My code says the importKerasNetwork cannot be used when complie.Thanks

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!