Condivisione della tecnologia

18 episodi di tutorial sull'apprendimento profondo ESP-DL per l'apprendimento di ESP32 - "Note sullo sviluppo dell'intelligenza artificiale incorporata nell'MCU"

2024-07-11

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

18 episodi di tutorial sull'apprendimento profondo ESP-DL per l'apprendimento di ESP32 - "Note sullo sviluppo dell'intelligenza artificiale incorporata nell'MCU"

Documentazione di riferimento: https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/tutorials/index.html
Inserisci qui la descrizione dell'immagine

Utilizza TVM per generare automaticamente progetti di distribuzione del modello

Questo caso introduce il processo completo di utilizzo del modello di distribuzione TVM. Questo progetto è basato sul ramo TVM v0.14.0 ed è in stato sperimentale. Al momento non sono previsti piani per un'ulteriore manutenzione iterativa. Attualmente è connesso solo l'operatore conv2d di ESP-DL e altri operatori potrebbero causare eccezioni.

Preparare
ESP-DL è un framework di inferenza di deep learning adattato ai chip della serie ESP. Questa libreria non può completare l'addestramento del modello. Gli utenti possono utilizzare TensorFlow, PyTorch e altre piattaforme di addestramento per addestrare il modello e quindi distribuire il modello tramite ESP-DL.
Il processo specifico è

Passaggio 1 Quantificare

Innanzitutto, converti il ​​modello addestrato come tensorflowPyTorch. Prendendo come esempio la piattaforma TensorFlow, puoi utilizzare tf2onnx nello script per convertire il modello TensorFlow addestrato nel formato del modello ONNX.
Verranno poi eseguite una serie di operazioni sul modello float32 per prepararlo alla quantificazione.
Quindi utilizzare lo strumento di quantizzazione per accettare il modello float32 preelaborato come input e generare un modello di quantizzazione int8.

Passaggio 2: distribuire il modello

Passaggio 2.1: prepararsi per accedere a 
Preparare un'immagine di input La dimensione dell'immagine di input deve essere coerente con la dimensione di input del modello ONNX ottenuto. La dimensione di input del modello può essere visualizzata tramite lo strumento Netron.

Passaggio 2.2: generazione del progetto di distribuzione
Utilizza TVM per generare automaticamente un progetto per eseguire l'inferenza del modello dato l'input.

Passaggio 3: eseguire il modello

Passaggio 3.1: eseguire l'inferenza
La struttura del file di progetto new_project generato nel passaggio precedente è la seguente:

├── CMakeLists.txt
├── componenti
│ ├── esp-dl
│ └── modello_tvm
│ ├── CMakeLists.txt
│ ├── crt_config
│ └── modello
├── principale
│ ├── app_main.c
│ ├── dati_di_input.h
│ ├── dati_di_uscita.h
│ └── CMakeLists.txt
├── partizioni.csv
├── sdkconfig.default
├── sdkconfig.defaults.esp32
├── sdkconfig.defaults.esp32s2
├── sdkconfig.defaults.esp32s3
Dopo aver configurato l'ambiente ESP-IDF del terminale (notare la versione di ESP-IDF), è possibile eseguire il progetto:

idf.py imposta-target esp32s3
monitor flash idf.py
Passaggio 3.2: debug