Générez du code générique C/C++ pour les réseaux de deep learning dans Simulink

Find AI Tools in second

Find AI Tools
No difficulty
No complicated process
Find ai tools

Générez du code générique C/C++ pour les réseaux de deep learning dans Simulink

Table of Contents

  1. Introduction
  2. Generating Generic C and C++ Code from Simulink Models
  3. Deployment to Embedded Processors
  4. Incorporating Deep Neural Network Objects into Simulink Models
  5. Supported Networks and Layers
  6. Deploying a Deep Learning Network to an ARM Cortex-M Processor
  7. Simulation of the Model in Simulink
  8. Generating Generic C Code for Deployment
  9. Code Generation Report and Generated Code
  10. Deployment to Target Hardware
  11. Verification of Code's Numerical Accuracy
  12. Conclusion

Introduction

Dans la version R2021a, il est désormais possible d'utiliser Simulink Coder et Embedded Coder pour générer du code C et C++ générique à partir de modèles Simulink contenant des réseaux neuronaux profonds. Ce code générique ne dépend pas de bibliothèques tierces et peut donc être déployé sur tout processeur embarqué qui compile du code C et C++, y compris les processeurs de la série ARM Cortex-M, les DSP et les microcontrôleurs de divers fournisseurs d'appareils.

Generating Generic C and C++ Code from Simulink Models

La génération de code C et C++ générique à partir de modèles Simulink contenant des réseaux neuronaux profonds est désormais possible grâce à Simulink Coder et Embedded Coder. Cette fonctionnalité permet de créer du code indépendant de toute bibliothèque tierce, ce qui facilite le déploiement sur une large gamme de processeurs embarqués.

Benefits of Generating Generic Code

La génération de code C et C++ générique à partir de modèles Simulink présente plusieurs avantages :

  • Indépendance vis-à-vis des bibliothèques tierces : le code généré ne dépend pas de bibliothèques tierces, ce qui facilite le déploiement sur différents processeurs embarqués.
  • Flexibilité de déploiement : le code générique peut être déployé sur tout processeur embarqué capable de compiler du code C et C++, y compris les processeurs de la série ARM Cortex-M, les DSP et les microcontrôleurs de différents fournisseurs.
  • Réutilisabilité : le code générique peut être réutilisé dans différents projets, ce qui permet de gagner du temps et des ressources lors du développement de systèmes embarqués.

Deep Learning Toolbox Integration

La génération de code C et C++ générique à partir de modèles Simulink contenant des réseaux neuronaux profonds est possible grâce à une intégration étroite avec la boîte à outils de deep learning. Cette intégration permet d'incorporer des objets de réseau dans les modèles Simulink à l'Aide de blocs spécifiques de la boîte à outils, tels que les blocs "Stateful Classify" et "Stateful Predict" introduits dans la version R2021a, ou à l'aide du bloc de fonction MATLAB.

Deep Learning Toolbox Integration

Deployment to Embedded Processors

Le code C et C++ générique généré à partir de modèles Simulink peut être déployé sur tout processeur embarqué capable de compiler du code C et C++, notamment les processeurs de la série ARM Cortex-M, les DSP et les microcontrôleurs de différents fournisseurs. Cela permet d'étendre l'utilisation de Simulink à quasiment tous les processeurs embarqués.

Pros

  • Flexibilité de déploiement sur une large gamme de processeurs embarqués.
  • Utilisation de processeurs couramment utilisés dans l'industrie des systèmes embarqués.

Cons

  • Nécessité d'avoir une connaissance approfondie des spécificités des processeurs cibles pour optimiser les performances du code généré.

Incorporating Deep Neural Network Objects into Simulink Models

L'intégration d'objets de réseau neuronal profond dans les modèles Simulink est facilitée grâce à l'utilisation de blocs spécifiques de la boîte à outils de deep learning. Ces blocs permettent d'incorporer facilement des objets de réseau dans les modèles Simulink et de les configurer selon les besoins du projet.

Stateful Classify Block

Le bloc "Stateful Classify" permet d'utiliser des réseaux de classification issus de la boîte à outils de deep learning. Ce bloc prend en entrée des données d'entrée et renvoie une classification basée sur le réseau neuronal configuré.

Stateful Predict Block

Le bloc "Stateful Predict" permet d'utiliser des réseaux de prédiction issus de la boîte à outils de deep learning. Ce bloc prend en entrée des données d'entrée et renvoie une prédiction basée sur le réseau neuronal configuré.

MATLAB Function Block

Le bloc de fonction MATLAB permet d'incorporer des fonctions MATLAB dans les modèles Simulink. Cela ouvre la possibilité d'utiliser des fonctions personnalisées pour le traitement des données ou la définition de comportements spécifiques.

Supported Networks and Layers

La génération de code C et C++ générique à partir de modèles Simulink est compatible avec plusieurs types de réseaux et de couches :

  • Réseaux de neurones convolutionnels (CNN)
  • Réseaux de neurones récurrents (RNN)
  • Réseaux de neurones récurrents à mémoire à court terme (LSTM)

La liste complète des réseaux et des couches pris en charge peut être consultée dans la documentation du produit.

Deploying a Deep Learning Network to an ARM Cortex-M Processor

Le déploiement d'un réseau de deep learning sur un processeur ARM Cortex-M est possible grâce à la génération de code C et C++ générique à partir de modèles Simulink. Voici un exemple de déploiement d'un réseau LSTM sur un processeur ARM Cortex-M pour prédire la durée de vie utile restante des moteurs turbofan.

LSTM Network Architecture

Le réseau LSTM utilisé dans cet exemple est composé de six couches, dont une couche LSTM. Ce réseau prend en entrée les données provenant de 17 capteurs de moteur et renvoie une prédiction de la durée de vie utile restante des moteurs, mesurée en cycles.

LSTM Network Architecture

Simulation of the Model in Simulink

La simulation du modèle dans Simulink permet de vérifier le bon fonctionnement du réseau de deep learning avant le déploiement. La prédiction de la durée de vie utile restante des moteurs est Comparée aux valeurs réelles pour évaluer l'exactitude du réseau.

Pros

  • Vérification du bon fonctionnement du réseau de deep learning avant le déploiement.
  • Comparaison des prédictions du réseau avec les valeurs réelles pour évaluer l'exactitude du réseau.

Cons

  • La simulation peut être coûteuse en termes de ressources de calcul, en fonction de la complexité du réseau de deep learning.

Generating Generic C Code for Deployment

La génération de code C générique à partir du modèle Simulink permet de créer du code optimisé pour le déploiement sur un processeur embarqué. Les paramètres de configuration peuvent être ajustés pour adapter le code généré aux spécificités du processeur cible.

Configuration Parameters

Les paramètres de configuration permettent de spécifier les options de génération de code, y compris le choix de la plateforme matérielle, du langage cible et de la bibliothèque de deep learning. Il est possible de personnaliser ces paramètres pour répondre aux exigences du projet.

Code Generation Report and Generated Code

Le rapport de génération de code fournit des informations détaillées sur le processus de génération de code, y compris les fichiers générés et les dépendances externes. Le code généré est optimisé pour le déploiement sur le processeur cible et ne dépend pas de bibliothèques externes de deep learning.

Deployment to Target Hardware

Le code généré peut être déployé sur le matériel cible, tel qu'un processeur ARM Cortex-M, à l'aide d'un outil de déploiement approprié. Une fois le code déployé, il peut être exécuté sur le matériel cible pour effectuer des prédictions en temps réel.

Pros

  • Déploiement du code généré sur le matériel cible pour une exécution en temps réel.
  • Utilisation des outils de déploiement appropriés pour faciliter le processus de déploiement.

Cons

  • Nécessité de disposer du matériel cible et des outils de déploiement appropriés pour exécuter le code généré.

Verification of Code's Numerical Accuracy

La vérification de l'exactitude numérique du code généré est essentielle pour garantir la fiabilité des prédictions du réseau de deep learning. Une comparaison entre les résultats obtenus avec le code généré et ceux obtenus avec la simulation dans Simulink permet de s'assurer de la concordance des prédictions.

Pros

  • Vérification de l'exactitude numérique du code généré par rapport à la simulation dans Simulink.
  • Évaluation de l'impact des approximations numériques sur les prédictions du réseau de deep learning.

Cons

  • Nécessité de disposer de données de test précises pour effectuer une comparaison pertinente.

Conclusion

En conclusion, la génération de code C et C++ générique à partir de modèles Simulink contenant des réseaux neuronaux profonds permet d'étendre l'utilisation de Simulink à quasiment tous les processeurs embarqués. Cette fonctionnalité facilite le déploiement de réseaux de deep learning sur le matériel cible, tout en garantissant l'exactitude numérique des prédictions. Pour en savoir plus sur la génération de code de deep learning et sur l'utilisation de MATLAB dans Simulink, veuillez consulter la documentation ci-dessous ou cliquer sur l'un des liens fournis.


Highlights:

  • La génération de code C et C++ générique à partir de modèles Simulink est désormais possible avec Simulink Coder et Embedded Coder.
  • Le code généré est indépendant de toute bibliothèque tierce, ce qui permet son déploiement sur une large gamme de processeurs embarqués.
  • L'intégration avec la boîte à outils de deep learning permet d'incorporer facilement des objets de réseau dans les modèles Simulink.
  • Les réseaux neuronaux convolutionnels et récurrents sont pris en charge pour la génération de code C et C++ générique.
  • Un exemple de déploiement sur un processeur ARM Cortex-M pour prédire la durée de vie utile des moteurs turbofan a été présenté.
  • La simulation dans Simulink permet de vérifier l'exactitude des prédictions du réseau de deep learning.
  • Le code C générique peut être généré et déployé sur le matériel cible à l'aide des outils appropriés.
  • La vérification de l'exactitude numérique du code généré est essentielle pour garantir la fiabilité des prédictions du réseau de deep learning.

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.