Operations
Develop custom deep learning functions
For most tasks, you can use built-in layers. If there is not a built-in layer that you need for your task, then you can define your own custom layer. You can define custom layers with learnable and state parameters. After you define a custom layer, you can check that the layer is valid, GPU compatible, and outputs correctly defined gradients. To learn more, see Define Custom Deep Learning Layers. For a list of supported layers, see List of Deep Learning Layers.
Use deep learning operations to develop MATLAB® code for custom layers, training loops, and model functions.
Functions
Topics
Automatic Differentiation
- Automatic Differentiation Background
 Learn how automatic differentiation works.
- Use Automatic Differentiation In Deep Learning Toolbox
 How to use automatic differentiation in deep learning.
- List of Functions with dlarray Support
 View the list of functions that supportdlarrayobjects.
- Define Custom Deep Learning Operations
 Learn how to define custom deep learning operation.
- Specify Custom Operation Backward Function
 This example shows how to define the SReLU operation as a differentiable function and specify a custom backward function.
- Train Model Using Custom Backward Function
 This example shows how to train a deep learning model that contains an operation with a custom backward function.
- Create Bidirectional LSTM (BiLSTM) Function
 This example shows how to create a bidirectional long-short term memory (BiLSTM) function for custom deep learning functions. (Since R2023b)
Model Functions
- Train Network Using Model Function
 This example shows how to create and train a deep learning network by using functions rather than a layer graph or adlnetwork.
- Update Batch Normalization Statistics Using Model Function
 This example shows how to update the network state in a network defined as a function.
- Make Predictions Using Model Function
 This example shows how to make predictions using a model function by splitting data into mini-batches.
- Initialize Learnable Parameters for Model Function
 Learn how to initialize learnable parameters for custom training loops using a model function.
Deep Learning Function Acceleration
- Deep Learning Function Acceleration for Custom Training Loops
 Accelerate model functions and model loss functions for custom training loops by caching and reusing traces.
- Accelerate Custom Training Loop Functions
 This example shows how to accelerate deep learning custom training loop and prediction functions.
- Check Accelerated Deep Learning Function Outputs
 This example shows how to check that the outputs of accelerated functions match the outputs of the underlying function.
- Evaluate Performance of Accelerated Deep Learning Function
 This example shows how to evaluate the performance gains of using an accelerated function.









