Technologieaustausch

18 Episoden des ESP-DL-Deep-Learning-Tutorials zum Erlernen von ESP32 – „MCU Embedded AI Development Notes“

2024-07-11

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

18 Episoden des ESP-DL-Deep-Learning-Tutorials zum Erlernen von ESP32 – „MCU Embedded AI Development Notes“

Referenzdokument: https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/tutorials/index.html
Fügen Sie hier eine Bildbeschreibung ein

Verwenden Sie TVM, um Modellbereitstellungsprojekte automatisch zu generieren

In diesem Fall wird der vollständige Prozess der Verwendung des TVM-Bereitstellungsmodells vorgestellt. Dieses Projekt basiert auf dem TVM v0.14.0-Zweig und befindet sich im experimentellen Status. Derzeit sind keine weiteren iterativen Wartungsarbeiten geplant. Derzeit ist nur der conv2d-Operator von ESP-DL verbunden, und andere Operatoren können Ausnahmen verursachen.

Vorbereiten
ESP-DL ist ein Deep-Learning-Inferenz-Framework, das an die ESP-Chipserie angepasst ist. Diese Bibliothek kann das Modelltraining nicht abschließen. Benutzer können TensorFlow, PyTorch und andere Trainingsplattformen verwenden, um das Modell zu trainieren und es dann über ESP-DL bereitzustellen.
Der spezifische Prozess ist

Schritt 1: Quantifizieren

Konvertieren Sie zunächst das trainierte Modell wie tensorflowPyTorch. Am Beispiel der TensorFlow-Plattform können Sie tf2onnx im Skript verwenden, um das trainierte TensorFlow-Modell in das ONNX-Modellformat zu konvertieren.
Anschließend wird eine Reihe von Operationen am float32-Modell durchgeführt, um es für die Quantifizierung vorzubereiten.
Verwenden Sie dann das Quantisierungstool, um das vorverarbeitete float32-Modell als Eingabe zu akzeptieren und ein int8-Quantisierungsmodell zu generieren.

Schritt 2: Stellen Sie das Modell bereit

Schritt 2.1: Bereiten Sie sich auf die Eingabe von  vor
Bereiten Sie ein Eingabebild vor. Die Größe des Eingabebilds sollte mit der erhaltenen Eingabegröße des ONNX-Modells übereinstimmen. Die Modelleingabegröße kann über das Netron-Tool angezeigt werden.

Schritt 2.2: Bereitstellungsprojektgenerierung
Verwenden Sie TVM, um bei gegebener Eingabe automatisch ein Projekt zum Ausführen der Modellinferenz zu generieren.

Schritt 3: Führen Sie das Modell aus

Schritt 3.1: Inferenz ausführen
Die Struktur der im vorherigen Schritt generierten Projektdatei new_project ist wie folgt:

├── CMakeLists.txt
├── Komponenten
│ ├── esp-dl
│ └── TVM-Modell
│ ├── CMakeLists.txt
│ ├── crt_config
│ └── Modell
├── Haupt
│ ├── app_main.c
│ ├── input_data.h
│ ├── Ausgabedaten.h
│ └── CMakeLists.txt
├── partitionen.csv
├── sdkconfig.defaults
├── sdkconfig.defaults.esp32
├── sdkconfig.defaults.esp32s2
├── sdkconfig.defaults.esp32s3
Nach der Konfiguration der Terminal-ESP-IDF-Umgebung (bitte beachten Sie die Version von ESP-IDF) können Sie das Projekt ausführen:

idf.py Ziel festlegen esp32s3
idf.py Flash-Monitor
Schritt 3.2: Debuggen