import a Keras pre-trained network into Matlab

1 view (last 30 days)
I'm having issues to import a pre-trained network I've trained in Python into Matlab.
- I used the function of: importKerasLayers ('ImportWeights',true) to import architecture & Weights
- I have 6 PlaceHolderLayers which are not supported by matlab - in 5 of them I can use transposedConv2dLayer custom layer to replace them
However, I'm not sure how do I import the Weights of those layers into my custom ones. I need them in order to use "assembleNetwork" function that will switch the imported network to a SeriesNetwork object that will be ready to use for prediction.
I followed this flow of work:

Answers (2)

Sivylla Paraskevopoulou
Sivylla Paraskevopoulou on 9 May 2022
Use the importTensorFlowNetwork function. importTensorFlowNetwork tries to generate a custom layer when you import a custom TensorFlow layer or when the software cannot convert a TensorFlow layer into an equivalent built-in MATLAB layer.
Note that you must first convert your TensorFlow model to the SavedModel format.

Asvin Kumar
Asvin Kumar on 26 May 2020
You can use the 'Weights' property for each PlaceholderLayer.
placeholderLayers = findPlaceholderLayers(lgraph);
placeholderLayers(i).Weights
On the other hand, you could explore other parameters involved by checking the data members of the placeholderLayers.KerasConfiguration structure as in this example.
In general, a couple of details in this section might be useful to you.

Community Treasure Hunt

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

Start Hunting!