Deep Learning Toolbox
Design, train, and analyze deep learning networks
Deep Learning 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 network architectures such as generative adversarial networks (GANs) and Siamese networks using automatic differentiation, custom training loops, and shared weights. With the Deep Network Designer app, you can design, analyze, and train networks graphically. The Experiment Manager app helps you manage multiple deep learning experiments, keep track of training parameters, analyze results, and compare code from different experiments. You can visualize layer activations and graphically 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 DarkNet-53, ResNet-50, NASNet, SqueezeNet and many other pretrained models.
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 Server™).
Get Started:
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.
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.
Design Deep Learning Networks
Create and train a deep network from scratch using the Deep Network Designer app. Import a pretrained model, visualize the network structure, edit layers, tune parameters, and train.
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.
Manage Deep Learning Experiments
Manage multiple deep learning experiments with the Experiment Manager app. Keep track of training parameters, analyze results, and compare code from different experiments. Use visualization tools such as training plots and confusion matrices, sort and filter experiment results, and define custom metrics to evaluate trained models.
Transfer Learning
Access pretrained networks and use them as a starting point to learn a new task. Perform transfer learning to use the learned features in the network for a specific task.
Pretrained Models
Access pretrained networks from the latest research with a single line of code. Import pretrained models including DarkNet-53, ResNet-50, SqueezeNet, NASNet, and Inception-v3.
Training Progress
View training progress in every iteration with plots of various metrics. Plot validation metrics against training metrics to see if the network is overfitting.
Network Activations and Visualizations
Extract activations corresponding to a layer, visualize learned features, and train a machine learning classifier using the activations. Use the Grad-CAM, occlusion, and LIME to explain a deep learning network's classification decisions.
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 NVIDIA® CUDA® code and use MATLAB Coder™ to generate C++ code for the imported model.
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 imported model.
Caffe Importer
Import models from Caffe Model Zoo into MATLAB for inference and transfer learning.
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.
Cloud Acceleration
Reduce deep learning training times with cloud instances. Use high-performance GPU instances for the best results.
Distributed Computing
Run deep learning training across multiple processors on multiple servers on a network using MATLAB Parallel Server.
Simulation
Simulate and generate code for deep learning networks in Simulink®. Use AlexNet, GoogLeNet and other pretrained models. You can also simulate networks created from scratch or through transfer learning, including LSTM networks. Speed up the execution of your deep learning network in Simulink using GPU Coder and NVIDIA GPUs. Simulate deep learning networks with control, signal processing, and sensor fusion components to assess the impact of your deep learning model on system-level performance.
Code Generation
Use GPU Coder to generate optimized CUDA code, MATLAB Coder and Simulink Coder to generate C and C++ code to deploy deep learning networks to NVIDIA GPUs, Intel® Xeon® and ARM® Cortex®-A processors. Automate cross-compilation and deployment of generated code onto NVIDIA Jetson™ and DRIVE™ platforms, and Raspberry Pi™ boards. Use Deep Learning HDL Toolbox™ to prototype and implement deep learning networks on FPGAs and SoCs
Deep Learning Quantization
Quantize your deep learning network to reduce memory usage and increase inference performance. Analyze and visualize the tradeoff between increased performance and inference accuracy using the Deep Network Quantizer app.
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.
Supervised Networks
Train supervised shallow neural networks to model and control dynamic systems, classify noisy data, and predict future events.
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.
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.
Image Classification and Network Prediction Blocks
Simulate and generate code for deep learning models in Simulink
Experiment Manager App
Train multiple deep learning networks in parallel and tune hyperparameters using Bayesian optimization
Deep Network Designer App
Train networks for image classification, semantic segmentation, multiple-input, out-of-memory, image-to-image regression, and other workflows.
Multilayer Perceptron Networks
Train networks with numeric feature inputs in tables and feature inputs combined with image inputs.
Custom Training Loops
Automatically create and preprocess mini-batches of data.
See the release notes for details on any of these features and corresponding functions.
MATLAB for Deep Learning
With just a few lines of MATLAB code, you can apply deep learning techniques to your work whether you’re designing algorithms, preparing and labeling data, or generating code and deploying to embedded systems.