Deep Learning Toolbox

Create, analyze, and train deep learning networks


Deep Learning Toolbox™ (formerly Neural Network Toolbox™) provides a framework for designing and implementing deep neural networks with algorithms, pretrained models, and apps. You can use convolutional neural networks (ConvNets, CNNs) and long short-term memory (LSTM) networks to perform classification and regression on image, time-series, and text data. You can build advanced network architectures such as generative adversarial networks (GANs) and Siamese networks using custom training loops, shared weights, and automatic differentiation. Apps and plots help you visualize activations, edit and analyze network architectures, and monitor training progress.

You can exchange models with TensorFlow™ and PyTorch through the ONNX format and import models from TensorFlow-Keras and Caffe. The toolbox supports transfer learning with a library of pretrained models (including NASNet, SqueezeNet, Inception-v3, and ResNet-101).

You can speed up training on a single- or multiple-GPU workstation (with Parallel Computing Toolbox™), or scale up to clusters and clouds, including NVIDIA® GPU Cloud and Amazon EC2® GPU instances (with MATLAB Parallel ServerTM).

Get Started:

Networks and Architectures

Use Deep Learning Toolbox to train deep learning networks for classification, regression, and feature learning on image, time-series, and text data.

Convolutional Neural Networks

Learn patterns in images to recognize objects, faces, and scenes. Construct and train convolutional neural networks (CNNs) to perform feature extraction and image recognition.

Long Short-Term Memory Networks

Learn long-term dependencies in sequence data including signal, audio, text, and other time-series data. Construct and train long short-term memory (LSTM) networks to perform classification and regression. 

Working with LSTMs.

Network Architectures

Use various network structures including directed acyclic graph (DAG) and recurrent architectures to build your deep learning network. Build advanced network architectures such as generative adversarial networks (GANs) and Siamese networks using custom training loops, shared weights, and automatic differentiation.

Working with different network architectures.

Network Design and Analysis

Create, edit, visualize, and analyze deep learning networks with interactive apps. 

Design Deep Learning Networks

Create a deep network from scratch using the Deep Network Designer app. Import a pretrained model, visualize the network structure, edit the layers, and tune parameters. 

Analyze Deep Learning Networks

Analyze your network architecture to detect and debug errors, warnings, and layer compatibility issues before training. Visualize the network topology and view details such as learnable parameters and activations.

Analyzing a deep learning network architecture.

Transfer Learning and Pretrained Models

Import pretrained models into MATLAB for inference. 

Transfer Learning

Access pretrained networks and use them as a starting point to learn a new task and quickly transfer learned features to a new task using fewer training images.

Pretrained Models

Access the latest pretrained networks from research with a single line of code. Import pretrained models including Inception-v3, SqueezeNet, NASNet, and GoogLeNet.

Analysis of deep neural network models.

Visualization and Debugging

Visualize training progress, and activations of the learned features in a deep learning network.

Training Progress

View training progress in every iteration with plots of various metrics. Plot validation metrics against training metrics to visually check if the network is overfitting.

Monitoring your model's training progress.

Network Activations

Extract activations corresponding to a layer, visualize the learned features, and train a machine learning classifier using the activations. Use the Grad-CAM approach to understand why a deep learning network makes its classification decisions.

Visualizing activations.

Framework Interoperability

Interoperate with deep learning frameworks from MATLAB.

ONNX Converter

Import and export ONNX models within MATLAB® for interoperability with other deep learning frameworks. ONNX enables models to be trained in one framework and transferred to another for inference. Use GPU Coder™ to generate optimized CUDA code and use MATLAB Coder™ to generate C++ code for the importer model.

Interoperating with deep learning frameworks.

TensorFlow-Keras Importer

Import models from TensorFlow-Keras into MATLAB for inference and transfer learning. Use GPU Coder to generate optimized CUDA code and use MATLAB Coder to generate C++ code for the importer model.

Caffe Importer

Import models from Caffe Model Zoo into MATLAB for inference and transfer learning.

Importing models from Caffe Model Zoo into MATLAB.

Training Acceleration

Speed up deep learning training using GPU, cloud, and distributed computing. 

GPU Acceleration

Speed up deep learning training and inference with high-performance NVIDIA GPUs. Perform training on a single workstation GPU or scale to multiple GPUs with DGX systems in data centers or on the cloud. You can use MATLAB with Parallel Computing Toolbox and most CUDA® enabled NVIDIA GPUs that have compute capability 3.0 or higher.

Acceleration with GPUs.

Cloud Acceleration

Reduce deep learning training times with cloud instances. Use high-performance GPU instances for the best results.

Accelerating training in the cloud with Parallel Computing Toolbox and MATLAB Parallel Server.

Distributed Computing

Run deep learning training across multiple processors on multiple servers on a network using MATLAB Parallel Server.

Scaling up deep learning in parallel and in the cloud.

Code Generation and Deployment

Deploy trained networks to embedded systems or integrate them with a wide range of production environments.

Code Generation

Use GPU Coder to generate optimized CUDA code from MATLAB code for deep learning, embedded vision, and autonomous systems. Use MATLAB Coder to generate C++ code to deploy deep learning networks to Intel® Xeon® and ARM® Cortex®-A processors.

Deploying Standalone Applications

Use MATLAB Compiler™ and MATLAB Compiler SDK™ to deploy trained networks as C++ shared libraries, Microsoft® .NET assemblies, Java® classes, and Python® packages from MATLAB programs with deep learning models.

Sharing standalone MATLAB programs with MATLAB Compiler.

Shallow Neural Networks

Use neural networks with a variety of supervised and unsupervised shallow neural network architectures.

Supervised Networks

Train supervised shallow neural networks to model and control dynamic systems, classify noisy data, and predict future events. 

Shallow neural network.

Unsupervised Networks

Find relationships within data and automatically define classification schemes by letting the shallow network continually adjust itself to new inputs. Use self-organizing, unsupervised networks as well as competitive layers and self-organizing maps.

Self-organizing map.

Stacked Autoencoders

Perform unsupervised feature transformation by extracting low-dimensional features from your data set using autoencoders. You can also use stacked autoencoders for supervised learning by training and stacking multiple encoders.

Stacked autoencoder.

Latest Features

Training Flexibility

Train advanced network architectures using custom training loops, automatic differentiation, shared weights, and custom loss functions

Deep Learning Networks

Build generative adversarial networks (GANs), Siamese networks, variational autoencoders, and attention networks

Data Preprocessing

Improve training performance using multiple data normalization options


Map strongly activating features of input data using occlusion sensitivity

Multiple-Input, Multiple-Output Networks

Train networks with multiple inputs and multiple outputs

Long Short-Term Memory (LSTM) Networks

Compute intermediate layer activations

ONNX Support

Export networks that combine CNN and LSTM layers and networks that include 3D CNN layers to ONNX format

See the release notes for details on any of these features and corresponding functions.

MATLAB for Deep Learning

Design, build, and visualize deep learning networks

Have Questions?

Contact Shounak Mitra, Deep Learning Toolbox Technical Expert