Deep Learning Custom Training Loops
trainingOptions function does not provide the training options that you need for your task, or custom output layers do not support the loss functions that you need, then you can define a custom training loop. For networks that cannot be created using layer graphs, you can define custom networks as a function. To learn more, see Define Custom Training Loops, Loss Functions, and Networks.
|Deep learning network for custom training loops|
|Reset state parameters of neural network|
|Plot neural network architecture|
|Add input layer to network|
|Add layers to layer graph or network|
|Remove layers from layer graph or network|
|Connect layers in layer graph or network|
|Disconnect layers in layer graph or network|
|Replace layer in layer graph or network|
|Print network summary|
|Initialize learnable and state parameters of a
|Deep learning network data layout for learnable parameter initialization|
Custom Training Loops
|Compute deep learning network output for training|
|Compute deep learning network output for inference|
|Update parameters using adaptive moment estimation (Adam)|
|Update parameters using root mean squared propagation (RMSProp)|
|Update parameters using stochastic gradient descent with momentum (SGDM)|
|Update parameters using custom function|
|Create mini-batches for deep learning|
|Encode data labels into one-hot vectors|
|Decode probability vectors into class labels|
|Pad or truncate sequence data to same length|
|Monitor and plot training progress for deep learning custom training loops|
|Deep learning array for custom training loops|
|Compute gradients for custom training loops using automatic differentiation|
|Evaluate deep learning model for custom training loops|
|Dimension labels of |
|Find dimensions with specified label|
|Extract data from |
|Check if object is |
|Convert deep learning model function to a layer graph|
Deep Learning Operations
|Deep learning convolution|
|Deep learning transposed convolution|
|Long short-term memory|
|Gated recurrent unit|
|Embed discrete data|
|Sum all weighted input data and apply a bias|
|Deep learning solution of nonstiff ordinary differential equation (ODE)|
|Apply rectified linear unit activation|
|Apply leaky rectified linear unit activation|
|Apply Gaussian error linear unit (GELU) activation|
|Normalize data across all observations for each channel independently|
|Cross channel square-normalize using local responses|
|Normalize data across grouped subsets of channels for each observation independently|
|Normalize across each channel for each observation independently|
|Normalize data across all channels for each observation independently|
|Pool data to average values over spatial dimensions|
|Pool data to maximum value|
|Unpool the output of a maximum pooling operation|
|Apply softmax activation to channel dimension|
|Apply sigmoid activation|
Deep Learning Loss Operations
|Apply sigmoid activation|
|Cross-entropy loss for classification tasks|
|L1 loss for regression tasks|
|L2 loss for regression tasks|
|Huber loss for regression tasks|
|Half mean squared error|
|Connectionist temporal classification (CTC) loss for unaligned sequence classification|
Custom Training Loops
- Train Deep Learning Model in MATLAB
Learn how to training deep learning models in MATLAB®.
- Define Custom Training Loops, Loss Functions, and Networks
Learn how to define and customize deep learning training loops, loss functions, and networks using automatic differentiation.
- Train Network Using Custom Training Loop
This example shows how to train a network that classifies handwritten digits with a custom learning rate schedule.
- Specify Training Options in Custom Training Loop
Learn how to specify common training options in a custom training loop.
- Define Model Loss Function for Custom Training Loop
Learn how to define a model loss function for a custom training loop.
- Update Batch Normalization Statistics in Custom Training Loop
This example shows how to update the network state in a custom training loop.
- Make Predictions Using dlnetwork Object
This example shows how to make predictions using a
dlnetworkobject by splitting data into mini-batches.
- Monitor Custom Training Loop Progress
Track and plot custom training loop progress.
- Train Network with Multiple Outputs
This example shows how to train a deep learning network with multiple outputs that predict both labels and angles of rotations of handwritten digits.
- Classify Videos Using Deep Learning with Custom Training Loop
This example shows how to create a network for video classification by combining a pretrained image classification model and a sequence classification network.
- Train Image Classification Network Robust to Adversarial Examples
This example shows how to train a neural network that is robust to adversarial examples using fast gradient sign method (FGSM) adversarial training.
- Train Neural ODE Network
This example shows how to train an augmented neural ordinary differential equation (ODE) network.
- Train Robust Deep Learning Network with Jacobian Regularization
This example shows how to train a neural network that is robust to adversarial examples using a Jacobian regularization scheme .
- Solve Ordinary Differential Equation Using Neural Network
This example shows how to solve an ordinary differential equation (ODE) using a neural network.
- Assemble Multiple-Output Network for Prediction
This example shows how to assemble a multiple output network for prediction.
- Run Custom Training Loops on a GPU and in Parallel
Speed up custom training loops by running on a GPU, in parallel using multiple GPUs, or on a cluster.
- 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 a
- 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.
- Train Latent ODE Network with Irregularly Sampled Time-Series Data
This example shows how to train a latent ordinary differential equation (ODE) autoencoder with time-series data that is sampled at irregular time intervals.
- Multivariate Time Series Anomaly Detection Using Graph Neural Network
This example shows how to detect anomalies in multivariate time series data using a graph neural network (GNN).
- List of Functions with dlarray Support
View the list of functions that support
- Automatic Differentiation Background
Learn how automatic differentiation works.
- Use Automatic Differentiation In Deep Learning Toolbox
How to use automatic differentiation in deep learning.
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.