Skip to main content

Convertir modelo a formato Edge TPU TFlite para Google Coral

Introducción

El Coral M.2 Accelerator con Dual Edge TPU es un módulo M.2 que trae dos coprocesadores Edge TPU a sistemas y productos existentes con un slot M.2 E-key disponible. Tensorflow y Pytorch son los marcos de aprendizaje profundo más populares. Por lo tanto, para usar el Edge TPU, necesitamos compilar el modelo al formato de Edge TPU.

Este artículo de wiki te guiará a través del proceso de compilar un modelo y ejecutarlo en el Google Coral TPU, permitiéndote aprovechar sus capacidades para aplicaciones de aprendizaje automático de alto rendimiento.

Preparar el hardware

Raspberry Pi 5 8GBRaspberry Pi M.2 HAT+Coral M.2 Accelerator B+M key

Instalar hardware

pir

Convertir modelo

note

Antes de comenzar, asegúrate de haber instalado el Google Coral TPU en la Pi 5 siguiendo la guía de instalación.

note

Y todo el proceso ha sido probado en Python 3.11.9.

Instalar Tensorflow

pip install tensorflow

Verificar tflite_converter

tflite_convert -h

El resultado debería ser algo como esto:

2024-07-23 10:41:03.750087: I tensorflow/core/platform/cpu_feature_guard.cc:182] Este binario de TensorFlow está optimizado para usar las instrucciones de CPU disponibles en operaciones críticas de rendimiento.
Para habilitar las siguientes instrucciones: AVX2 FMA, en otras operaciones, recompila TensorFlow con los indicadores del compilador apropiados.
2024-07-23 10:41:04.276520: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Advertencia: No se pudo encontrar TensorRT
uso: tflite_convert [-h] --output_file OUTPUT_FILE [--saved_model_dir SAVED_MODEL_DIR | --keras_model_file KERAS_MODEL_FILE] [--saved_model_tag_set SAVED_MODEL_TAG_SET]
[--saved_model_signature_key SAVED_MODEL_SIGNATURE_KEY] [--enable_v1_converter] [--experimental_new_converter [EXPERIMENTAL_NEW_CONVERTER]]
[--experimental_new_quantizer [EXPERIMENTAL_NEW_QUANTIZER]]

Herramienta de línea de comandos para ejecutar el conversor de TensorFlow Lite.

argumentos opcionales:
-h, --help muestra este mensaje de ayuda y sale
--output_file OUTPUT_FILE
Ruta completa del archivo de salida.
--saved_model_dir SAVED_MODEL_DIR
Ruta completa del directorio que contiene el SavedModel.
--keras_model_file KERAS_MODEL_FILE
Ruta completa del archivo HDF5 que contiene el modelo tf.Keras.
--saved_model_tag_set SAVED_MODEL_TAG_SET
Conjunto de etiquetas separadas por comas que identifican el MetaGraphDef dentro del SavedModel a analizar. Todas las etiquetas deben estar presentes. Para pasar un conjunto de etiquetas vacío, pasa "". (predeterminado "serve")
--saved_model_signature_key SAVED_MODEL_SIGNATURE_KEY
Clave que identifica el SignatureDef que contiene entradas y salidas. (predeterminado DEFAULT_SERVING_SIGNATURE_DEF_KEY)
--enable_v1_converter
Habilita el conversor de TensorFlow V1 en 2.0
--experimental_new_converter [EXPERIMENTAL_NEW_CONVERTER]
Bandera experimental, sujeta a cambios. Habilita la conversión basada en MLIR en lugar de la conversión TOCO. (predeterminado True)
--experimental_new_quantizer [EXPERIMENTAL_NEW_QUANTIZER]
Bandera experimental, sujeta a cambios. Habilita el cuantificador basado en MLIR en lugar de la conversión flatbuffer. (predeterminado True)

Convertir modelo de Tensorflow a modelo TFlite

tflite_convert --saved_model_dir=TU_RUTA_DE_MODELO --output_file=TU_NOMBRE_DE_MODELO.tflite

Convertir modelo TFlite a modelo Edge TPU

note

Debes optimizar tu modelo antes de convertir el modelo tflite a modelo Edge TPU, por favor consulta la Optimización del modelo Tensorflow

Instalar compilador edgetpu

curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list

sudo apt-get update

sudo apt-get install edgetpu-compiler

Transformar modelo TFlite a modelo Edge TPU

edgetpu_compiler TU_NOMBRE_DE_MODELO.tflite

Y entonces deberías obtener un nuevo archivo llamado TU_NOMBRE_DE_MODELO_edgetpu.tflite

Soporte técnico y discusión de productos

¡Gracias por elegir nuestros productos! Estamos aquí para proporcionarte el soporte necesario para asegurarnos de que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...