Import layers from Keras network
imports the layers of a TensorFlow™-Keras network from a model file. The function returns the layers defined in
the HDF5 (layers
= importKerasLayers(modelfile
).h5
) or JSON (.json
) file given by the file
name modelfile
.
This function requires the Deep Learning Toolbox™ Importer for TensorFlow-Keras Models support package. If this support package is not installed, then the function provides a download link.
imports the layers from a TensorFlow-Keras network with additional options specified by one or more name-value pair
arguments.layers
= importKerasLayers(modelfile
,Name,Value
)
For example, importKerasLayers(modelfile,'ImportWeights',true)
imports the network layers and the weights from the model file
modelfile
.
importKerasLayers
supports the following Keras layer types, with some
limitations. If the network contains any other type of layer, then the software inserts a
placeholder layer in place of the unsupported layer. To find the names and indices of the
unsupported layers in the network, use the findPlaceholderLayers
function. You then can replace a placeholder layer
with a new layer that you define. To replace a layer, use replaceLayer
.
Supported Keras Layer | Corresponding Deep Learning Toolbox Layer |
---|---|
Add | additionLayer |
| Layers: |
Advanced activations:
| Layers:
|
AveragePooling2D | averagePooling2dLayer |
BatchNormalization | batchNormalizationLayer |
Bidirectional(LSTM(__)) | bilstmLayer |
Concatenate | depthConcatenationLayer |
Conv2D | convolution2dLayer |
Conv2DTranspose | transposedConv2dLayer |
CuDNNLSTM | lstmLayer |
Dense | fullyConnectedLayer |
DepthwiseConv2D | groupedConvolution2dLayer |
Dropout | dropoutLayer |
Embedding | wordEmbeddingLayer (Text Analytics Toolbox) |
Flatten | nnet.keras.layer.FlattenCStyleLayer |
GlobalAveragePooling2D | globalAveragePooling2dLayer |
GlobalMaxPooling2D | globalMaxPooling2dLayer |
GRU | gruLayer |
Input | imageInputLayer |
LSTM | lstmLayer |
MaxPooling2D | maxPooling2dLayer |
Multiply | multiplicationLayer |
SeparableConv2D | groupedConvolution2dLayer or convolution2dLayer |
UpSampling2D | resize2dLayer (Image Processing Toolbox) |
UpSampling3D | resize3dLayer (Image Processing Toolbox) |
ZeroPadding2D | nnet.keras.layer.ZeroPadding2DLayer |
*For a PReLU layer, importKerasLayers
replaces a
vector-valued scaling parameter with the average of the vector elements. You can change the
parameter back to a vector after import. For an example, see Import Keras PReLU Layer.
You can replace a placeholder layer with a new layer that you define.
If the network is a series network, then replace the layer in the array
directly. For example, layer(2) = newlayer;
.
If the network is a DAG network, then replace the layer using replaceLayer
. For an example, see Assemble Network from Pretrained Keras Layers.
importKerasLayers
supports the following Keras loss functions:
mean_squared_error
categorical_crossentropy
sparse_categorical_crossentropy
binary_crossentropy
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, use
importKerasLayers
. The importKerasLayers
function inserts placeholder layers for the inputs and outputs. After importing, you can
find and replace the placeholder layers by using findPlaceholderLayers
and replaceLayer
,
respectively. The workflow for importing MIMO Keras networks is the same as the workflow
for importing MIMO ONNX™ networks. For an example, see Import 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 used to train the imported model were preprocessed. Resizing images, subtracting the average image, and converting the images from RGB to BGR format are the most common preprocessing operations.
For more information on preprocessing images for training and prediction, see Preprocess Images for Deep Learning.
[1] Keras: The Python Deep Learning library. https://keras.io.
assembleNetwork
| exportONNXNetwork
| findPlaceholderLayers
| importCaffeLayers
| importCaffeNetwork
| importKerasNetwork
| importONNXLayers
| importONNXNetwork
| replaceLayer