importKerasNetwork
(To be removed) Import pretrained Keras network and weights
importKerasNetwork
will be removed in a future release. Use importNetworkFromTensorFlow
instead. (since R2023b) For more information about
updating your code, see Version History.
Description
imports a pretrained TensorFlow-Keras network and its weights with additional options specified by one or more
name-value pair arguments.net
= importKerasNetwork(modelfile
,Name,Value
)
For example, importKerasNetwork(modelfile,'WeightFile',weights)
imports the network from the model file modelfile
and weights from the
weight file weights
. In this case, modelfile
can be in
HDF5 or JSON format, and the weight file must be in HDF5 format.
Examples
Input Arguments
Output Arguments
Limitations
importKerasNetwork
supports TensorFlow-Keras versions as follows:The function fully supports TensorFlow-Keras versions up to 2.2.4.
The function offers limited support for TensorFlow-Keras versions 2.2.5 to 2.4.0.
More About
Tips
If the network contains a layer that Deep Learning Toolbox Converter for TensorFlow Models does not support (see Supported Keras Layers), then
importKerasNetwork
returns an error message. In this case, you can still useimportKerasLayers
to import the network architecture and weights.You can import a Keras network with multiple inputs and multiple outputs (MIMO). Use
importKerasNetwork
if the network includes input size information for the inputs and loss information for the outputs. Otherwise, useimportKerasLayers
. TheimportKerasLayers
function inserts placeholder layers for the inputs and outputs. After importing, you can find and replace the placeholder layers by usingfindPlaceholderLayers
andreplaceLayer
, respectively. The workflow for importing MIMO Keras networks is the same as the workflow for importing MIMO ONNX™ networks. For an example, see Import and Assemble ONNX Network with Multiple Outputs. To learn about a deep learning network with multiple inputs and multiple outputs, see Multiple-Input and Multiple-Output Networks.To use a pretrained network for prediction or transfer learning on new images, you must preprocess your images in the same way as the images that you use to train the imported model. The most common preprocessing steps are resizing images, subtracting image average values, and converting the images from BGR format to RGB format.
For more information about preprocessing images for training and prediction, see Preprocess Images for Deep Learning.
MATLAB uses one-based indexing, whereas Python® uses zero-based indexing. In other words, the first element in an array has an index of 1 and 0 in MATLAB and Python, respectively. For more information about MATLAB indexing, see Array Indexing. In MATLAB, to use an array of indices (
ind
) created in Python, convert the array toind+1
.For more tips, see Tips on Importing Models from TensorFlow, PyTorch, and ONNX.
Alternative Functionality
Use
importKerasNetwork
orimportKerasLayers
to import a TensorFlow-Keras network in HDF5 or JSON format. If the TensorFlow network is in the saved model format, useimportTensorFlowNetwork
orimportTensorFlowLayers
.If you import a custom TensorFlow-Keras layer or if the software cannot convert a TensorFlow-Keras layer into an equivalent built-in MATLAB layer, you can use
importTensorFlowNetwork
orimportTensorFlowLayers
, which try to generate a custom layer. For example,importTensorFlowNetwork
andimportTensorFlowLayers
generate a custom layer when you import a TensorFlow-KerasLambda
layer.
References
[1] Keras: The Python Deep Learning library. https://keras.io.