Compartir tecnología

18 episodios del tutorial de aprendizaje profundo ESP-DL para aprender ESP32: "Notas de desarrollo de IA integrada de MCU"

2024-07-11

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

18 episodios del tutorial de aprendizaje profundo ESP-DL para aprender ESP32: "Notas de desarrollo de IA integrada de MCU"

Documento de referencia: https://docs.espressif.com/projects/esp-dl/zh_CN/latest/esp32/tutorials/index.html
Insertar descripción de la imagen aquí

Utilice TVM para generar automáticamente proyectos de implementación de modelos

Este caso presenta el proceso completo de uso del modelo de implementación TVM. Este proyecto se basa en la rama TVM v0.14.0 y se encuentra en estado experimental. Actualmente no hay planes para un mayor mantenimiento iterativo. Actualmente, solo el operador conv2d de ESP-DL está conectado y otros operadores pueden causar excepciones.

Preparar
ESP-DL es un marco de inferencia de aprendizaje profundo adaptado a la serie de chips ESP. Esta biblioteca no puede completar el entrenamiento del modelo. Los usuarios pueden usar TensorFlow, PyTorch y otras plataformas de entrenamiento para entrenar el modelo y luego implementar el modelo a través de ESP-DL.
El proceso específico es

Paso 1 Cuantificar

Primero, convierta el modelo entrenado como tensorflowPyTorch. Tomando la plataforma TensorFlow como ejemplo, puede usar tf2onnx en el script para convertir el modelo entrenado de TensorFlow al formato de modelo ONNX.
Luego se realizará una serie de operaciones en el modelo float32 para prepararlo para la cuantificación.
Luego use la herramienta de cuantificación para aceptar el modelo float32 preprocesado como entrada y generar un modelo de cuantificación int8.

Paso 2: implementar el modelo

Paso 2.1: Prepárate para entrar 
Prepare una imagen de entrada. El tamaño de la imagen de entrada debe ser coherente con el tamaño de entrada del modelo ONNX obtenido. El tamaño de entrada del modelo se puede ver a través de la herramienta Netron.

Paso 2.2: Generación del proyecto de implementación
Utilice TVM para generar automáticamente un proyecto para ejecutar la inferencia del modelo dada la entrada.

Paso 3: ejecutar el modelo

Paso 3.1: ejecutar la inferencia
La estructura del archivo de proyecto new_project generado en el paso anterior es la siguiente:

├── CMakeLists.txt
├── componentes
│ ├── esp-dl
│ └── modelo_tvm
│ ├── CMakeLists.txt
│ ├── crt_config
│ └── modelo
├── principal
│ ├── aplicación_main.c
│ ├── entrada_datos.h
│ ├── datos_de_salida.h
│ └── CMakeLists.txt
├── particiones.csv
├── valores predeterminados de sdkconfig
├── sdkconfig.defaults.esp32
├── sdkconfig.defaults.esp32s2
├── sdkconfig.defaults.esp32s3
Después de configurar el entorno del terminal ESP-IDF (tenga en cuenta la versión de ESP-IDF), puede ejecutar el proyecto:

idf.py establece el objetivo esp32s3
monitor flash idf.py
Paso 3.2: Depuración