Updated March 28, 2023
Introduction to Deep Learning Toolbox
Deep Learning Toolbox, a framework developed by the MathWorks is used in the development of deep neural networks. It supports advanced architectures like Convolution Neural Networks, Generative Adversarial Network, Siamese Networks, etc. which finds its application in image, video and text processing. It also provides an interactive dashboard for plotting and visualizing the network architecture. It also supports model exchange between TensorFlow and PyTorch by using the ONNX format. It also supports parallel GPUs through the usage of Parallel Computing Toolbox which uses a scalable architecture for supporting the cloud and cluster platform which includes Amazon EC2 instance, NVIDIA, etc.
Deep Learning Toolbox in Detail
Deep Learning Toolbox uses MATLAB as its backend programming language. Thus, the users can take reference of the MATLAB Deep Neural Network. It also provides a MATLAB Coder also known as GPU coder which can be used in the generation of the C++ and CUDA code which can be deployed on Intel, NVIDIA and ARM platforms. It also comes up with a Deep Network Designer which eases the development effort on part of the user. The Deep Network Designer comes up with an easy drag-drop method that helps the user in designing, developing and visualizing his/her application easily. It also provides the user with a method to apply pre-trained models as well as to develop new model architectures. Also, MATLAB Image Labeler application can be used along with it so that the user can get the benefit of viewing his/her images as well as labeling them for semantically segmenting them. Using the above, users can create a workflow where they can establish ground truth for various domain-specific applications. It also supports the fine-tuning of the pre-trained models.
Types of Convolutional Neural Networks
The Deep Learning Toolbox supports the following types of Convolutional Neural Networks:
1. MatConvNet
It is one of the processes used by the MATLAB for the convolutional neural networks. It is simple and flexible in terms of usage. It comprises all the necessary setup required for building the CNN architecture with inbuilt MATLAB functions, calculation of convolutions, pooling, etc. It also supports the quick and dirty implementation of the distinct neural network architectures that can be developed for faster testing. It also supports computation which use CPU as well as GPU for training big and complex models for any large dataset.
2. Cuda-Convnet
It is an implementation that is secured and uses C++/CUDA as its backend. It presents the user with the connectivity in the optional layers as well as the intensity of networks. It accepts any acyclic graph of layers as its input if marked. The model is trained using back-propagation. The method of back-propagation involves the gradient computation for a neural network which calculates the underlying weights of the network. The error is calculated at the output layer which is propagated back to the other layers. It is used by CUDA as it is a generalized form of the delta approach which finds its usage in multi-layered feedforward networks. The chain rule of differentiation can be used in the computation of gradients for every layer in a network. It finds it association with the Gauss-Newton approach which is a part of advanced research in back-propagation algorithms for neural networks.
- Deep Learning Toolbox supports both deep and shallow neural networks. Time series analysis, Regression problems, etc. come under shallow neural networks. It has replaced the Neural Network Toolbox which was previously developed.
- Deep Learning Toolbox uses the ONNX framework which supports operational capabilities with existing frameworks. The models can be exported and imported easily which use frameworks like TensorFlow, PyTorch, Keras, etc.
- It also supports the Deep Learning Container, a utility which supports cloud platform like NVIDIA GPU to provide extensive performance and supporting architectures for Azure and Amazon Web Services.
Classification Task in MATLAB
Below is an implementation of the AlexNet image classification task in MATLAB. Only 8 lines of code are required to define the above task.
Code:
while true
im = snapshot(camera); % Take a picture
image(im); % Show the picture
im = imresize(im, [227 227]); % Resize the picture for alexnet
label = classify(net, im); % Classify the picture
title(char(label)); % Show the class label
drawnow
end
It also supports LSTM (Long Short Term Memory) Networks for text classification. It provides features like 5G Toolbox, NVIDIA Cloud, Sensor Fusion and Tracking which supports DGX etc.
Benefits of Deep Learning Toolbox
Below we will see the benefits of deep learning toolbox:
- MATLAB: It comes up with MATLAB as its back-end which finds its application in IoT (Internet of Things) applications, simulation software, etc.
- Applications: It supports Machine Learning and Deep Learning technology in the existing framework. It supports the regression as well as classification tasks including forecasting, time series analysis, image processing, text processing, audio processing etc.
- ONNX: It uses ONNX (Open Neural Network Exchange Format) which allows the users to export and import their existing models which are developed and deployed using existing frameworks like TensorFlow, Keras, Caffe, MXNet etc.
- DNN Support: Deployment code for DNN can be used on multiple platforms like NVIDIA Tegra, Intel, ARM, etc.
- Deep Network Designer: Pre-Trained models like AlexNet, Google LeNet, ResNet etc. can be used by users which can be fine-tuned. Workflows can be created based on domain which help in establishing the ground truth labels for the applications that use image, video and speech segments.
- Distributed Computation: It provides Parallel Computing Toolbox which uses the distributed computing architecture for training complex models for a huge dataset. The MATLAB distributed Computing Server supports the GPU instances provided by the Amazon EC2 cloud. It also supports other popular cloud-based platforms like Azure and Amazon AWS.
- Other Features: 5G Toolbox, NVIDIA based cloud platform, DGX based Sensor Fusion/Tracking, etc.
Conclusion
Deep Learning Toolbox, formerly known as Neural Network Toolbox is developed to cater to the needs of prospective customers in IoT technologies which extensively use machine learning. With the distributed computation and cloud support and interoperability with different frameworks, it is providing stiff competition to the existing deep learning frameworks.
Recommended Articles
This is a guide to Deep Learning Toolbox. Here we discuss types of Convolutional Neural Networks, classification tasks in MATLAB with top benefits of deep learning toolbox. You can also go through our other related articles to learn more –