# Deep Learning with MATLAB Coder

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.

You can use MATLAB^{®}
Coder™ with Deep Learning Toolbox to generate C++ code from a trained CNN. You can then deploy the
generated code to an embedded platform that uses an Intel^{®} or ARM^{®} processor. You can also generate generic C or C++ code from a trained
CNN that does not depend on any third-party libraries.

Deep Learning with MATLAB Coder is not supported in MATLAB Online™.

## Functions

`codegen` | Generate C/C++ code from MATLAB code |

`coder.loadDeepLearningNetwork` | Load deep learning network model |

`coder.DeepLearningConfig` | Create deep learning code generation configuration objects |

`coder.ARMNEONConfig` | Parameters to configure deep learning code generation with the ARM Compute Library |

`coder.CMSISNNConfig` | Parameters to configure deep learning code generation with the CMSIS-NN library for Cortex-M targets |

`coder.MklDNNConfig` | Parameters to configure deep learning code generation with the Intel Math Kernel Library for Deep Neural Networks |

`analyzeNetworkForCodegen` | Analyze deep learning network for code generation |

`coder.regenerateDeepLearningParameters` | Regenerate files containing network learnables and states parameters |

## Topics

**Prerequisites for Deep Learning with MATLAB Coder**Install products and configure environment for code generation for deep learning networks.

**Workflow for Deep Learning Code Generation with MATLAB Coder**Generate code for prediction from a pretrained network.

**Networks and Layers Supported for Code Generation**Choose a convolutional neural network that is supported for your target processor.

**Analyze Network for Code Generation**Check code generation compatibility of a deep learning network.

**Code Generation for dlarray**Use deep learning arrays in MATLAB code intended for code generation.

**dlarray Limitations for Code Generation**Adhere to code generation limitations for deep learning arrays.

**Load Pretrained Networks for Code Generation**Create a

`SeriesNetwork`

,`DAGNetwork`

,`yolov2ObjectDetector`

,`ssdObjectDetector`

, or`dlnetwork`

object for code generation.**Generate Generic C/C++ Code for Deep Learning Networks**Generate C/C++ code for prediction from a deep learning network that does not depend on any third-party libraries.

**Code Generation for Deep Learning Networks with MKL-DNN**Generate C++ code for prediction from a deep learning network, targeting an Intel CPU.

**Code Generation for Deep Learning Networks with ARM Compute Library**Generate C++ code for prediction from a deep learning network, targeting an ARM processor.

**Cross-Compile Deep Learning Code That Uses ARM Compute Library**Generate library or executable code on host computer for deployment on ARM hardware target.

**Generate int8 Code for Deep Learning Networks**Quantize and generate code for a pretrained convolutional neural network.

**Update Network Parameters After Code Generation**Perform post code generation updates of deep learning network parameters.

## Related Information

**Get Started with Deep Learning Toolbox (Deep Learning Toolbox)****Deep Learning with GPU Coder (GPU Coder)**