Partage de technologie

18 épisodes du didacticiel d'apprentissage profond ESP-DL pour l'apprentissage de l'ESP32 - "MCU Embedded AI Development Notes"

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

18 épisodes du didacticiel d'apprentissage profond ESP-DL pour l'apprentissage de l'ESP32 - "MCU Embedded AI Development Notes"

Document de référence : https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/tutorials/index.html
Insérer la description de l'image ici

Utiliser TVM pour générer automatiquement des projets de déploiement de modèles

Ce cas présente le processus complet d'utilisation du modèle de déploiement TVM. Ce projet est basé sur la branche TVM v0.14.0 et est au stade expérimental. Il n'est actuellement pas prévu de maintenance itérative supplémentaire. Actuellement, seul l'opérateur conv2d d'ESP-DL est connecté, et d'autres opérateurs peuvent provoquer des exceptions.

Préparer
ESP-DL est un cadre d'inférence d'apprentissage profond adapté à la série de puces ESP. Cette bibliothèque ne peut pas terminer la formation du modèle. Les utilisateurs peuvent utiliser TensorFlow, PyTorch et d'autres plates-formes de formation pour former le modèle, puis déployer le modèle via ESP-DL.
Le processus spécifique est

Étape 1 Quantifier

Tout d'abord, convertissez le modèle entraîné tel que tensorflowPyTorch En prenant la plate-forme TensorFlow comme exemple, vous pouvez utiliser tf2onnx dans le script pour convertir le modèle TensorFlow entraîné au format de modèle ONNX.
Une série d'opérations sera ensuite réalisée sur le modèle float32 pour le préparer à la quantification.
Utilisez ensuite l'outil de quantification pour accepter le modèle float32 prétraité comme entrée et générer un modèle de quantification int8.

Étape 2 : Déployer le modèle

Étape 2.1 : Préparez-vous à entrer 
Préparez une image d'entrée. La taille de l'image d'entrée doit être cohérente avec la taille d'entrée du modèle ONNX obtenu. La taille d'entrée du modèle peut être visualisée via l'outil Netron.

Étape 2.2 : Génération du projet de déploiement
Utilisez TVM pour générer automatiquement un projet pour exécuter l'inférence de modèle en fonction de l'entrée.

Étape 3 : Exécuter le modèle

Étape 3.1 : Exécuter l'inférence
La structure du fichier projet new_project généré à l'étape précédente est la suivante :

├── CMakeLists.txt
├── composants
│ ├── esp-dl
│ └── tvm_model
│ ├── CMakeLists.txt
│ ├── crt_config
│ └── modèle
├── principal
│ ├── app_main.c
│ ├── données_d'entrée.h
│ ├── output_data.h
│ └── CMakeLists.txt
├── partitions.csv
├── sdkconfig.defaults
├── sdkconfig.defaults.esp32
├── sdkconfig.defaults.esp32s2
├── sdkconfig.defaults.esp32s3
Après avoir configuré l'environnement du terminal ESP-IDF (veuillez noter la version d'ESP-IDF), vous pouvez exécuter le projet :

idf.py définit la cible esp32s3
Moniteur flash idf.py
Étape 3.2 : Débogage