# Deep Learning with GPU Coder

^{®}code for deep learning neural networks

Deep learning is a branch of machine learning that teaches computers to do what comes naturally to humans: learn from experience. The learning algorithms use computational methods to “learn” information directly from data without relying on a predetermined equation as a model. Deep learning uses convolutional neural networks (CNNs) to learn useful representations of data directly from images. Neural networks combine multiple nonlinear processing layers, using simple elements operating in parallel and inspired by biological nervous systems. Deep learning models are trained by using a large set of labeled data and neural network architectures that contain many layers, usually including some convolutional layers.

You can use GPU Coder™ in tandem with the Deep Learning Toolbox™ to generate code and deploy CNN on multiple embedded platforms
that use NVIDIA^{®} or ARM^{®} GPU processors. The Deep Learning Toolbox provides simple MATLAB^{®} commands for creating and interconnecting the layers of a deep
neural network. The availability of pretrained networks and examples such as
image recognition and driver assistance applications enable you to use
GPU Coder for deep learning, without expert knowledge on neural
networks, deep learning, or advanced computer vision algorithms.

## Apps

## Functions

## Objects

## Simulink Configuration Parameters

## Topics

### MATLAB

**Load Pretrained Networks for Code Generation**

Create a `SeriesNetwork`

, `DAGNetwork`

,
`yolov2ObjectDetector`

, `ssdObjectDetector`

, or
`dlnetwork`

object for code generation.

**Code Generation for Deep Learning Networks by Using cuDNN**

Generate code for pretrained convolutional neural networks by using the cuDNN library.

**Code Generation for Deep Learning Networks by Using TensorRT**

Generate code for pretrained convolutional neural networks by using the TensorRT library.

**Code Generation for Deep Learning Networks Targeting ARM Mali GPUs**

Generate C++ code for prediction from a deep learning network targeting an ARM Mali GPU processor.

**Update Network Parameters After Code Generation**

Perform post code generation updates of deep learning network parameters.

**Data Layout Considerations in Deep Learning**

Fundamental data layout considerations for authoring example main functions.

**Quantization of Deep Neural Networks**

Understand effects of quantization and how to visualize dynamic ranges of network convolution layers.

**Code Generation for Quantized Deep Learning Networks**

Quantize and generate code for a pretrained convolutional neural network.

**Lane Detection Optimized with GPU Coder**

This example shows how to generate CUDA® code from a deep learning network, represented by a `SeriesNetwork`

object.

**Traffic Sign Detection and Recognition**

This example shows how to generate CUDA® MEX code for a traffic sign detection and recognition application that uses deep learning.

This example shows code generation for a logo classification application that uses deep learning.

**Code Generation for Semantic Segmentation Network That Uses U-net**

This example shows code generation for an image segmentation application that uses deep learning.

**Code Generation for Semantic Segmentation Network**

This example shows code generation for an image segmentation application that uses deep learning.

**Code Generation for Denoising Deep Neural Network**

This example shows how to generate CUDA® MEX from MATLAB® code and denoise grayscale images by using the denoising convolutional neural network (DnCNN [1]).

### Simulink

**GPU Code Generation for Deep Learning Networks Using MATLAB Function Block**

Simulate and generate code for deep learning models in Simulink using MATLAB function blocks.

**GPU Code Generation for Blocks from the Deep Neural Networks Library**

Simulate and generate code for deep learning models in Simulink using library blocks.

**Targeting NVIDIA Embedded Boards**

Build and deploy to NVIDIA GPU boards.