Cómo Construir una Rueda (Wheel) Python de LiteRT para el AXC F2152
El mes pasado, Google anunció un cambio de marca/renombramiento de TensorFlow Lite a LiteRT (Enlace al artículo). Ahora formará parte de su intento renovado por mantenerse relevante en el paradigma de computación Edge con Google AI Edge.
Ya había puesto a disposición TensorFlow Lite (junto con numpy y OpenCV) a través de una app para fines educativos en la PLCnext Store (Enlace a la app). Sin embargo, la app restringe a los usuarios a usar la solución preempaquetada, incluso si quieren probar algo completamente diferente o incluir otras bibliotecas.
Considerando que recientemente actualicé la app y necesité refrescar mi memoria sobre cómo hacerlo, decidí crear esta publicación y explicar cómo compilar cruzadamente (cross-compile) TensorFlow Lite Runtime para el AXC F 2152.
El proceso en el último paso puede parecer bastante convoluto ya que las bibliotecas disponibles públicamente no ofrecen soporte directo para la arquitectura del procesador del AXC F 2152 y por lo tanto, la compilación cruzada es necesaria.
NOTA: Este procedimiento fue probado en:
- Una terminal UBUNTU 22.04 virtualizada.
- La Máquina Virtual tiene 27 GB de RAM y un archivo swap adicional de 16GB de RAM [Muy relevante para el proceso de compilación cruzada] y corre usando 24 núcleos.
- Una máquina anfitriona (host) con 32GB de RAM y un procesador Core i7-12850HX.
NOTA 2: La cantidad de RAM permite mantener la compilación cruzada estable y correr lo más rápido posible. Una configuración con menos RAM puede no ser capaz de ejecutar el proceso de compilación cruzada o puede tardar demasiado (hasta varias horas en mi experiencia).
- Descargue el código fuente de TensorFlow de la versión que quiera compilar. https://github.com/tensorflow/tensorflow/releases/
- Extraiga el contenido a una carpeta de su elección. Usaré "myfolder" en las siguientes entradas.
- Navegue a "Makefile" en "
/myfolder/tensorflow-2.XX.0/tensorflow/lite/tools/pip_package/Makefile" y modifique la imagen base, versión de python y versión de numpy para que coincidan con las de su sistema. Ej.:
- Navegue a "downloadtoolchains.sh" ubicado en "
/myfolder/tensorflow-2.XX.0/tensorflow/lite/tools/cmake/download_toolchains.sh" y modifique los flags que vienen por defecto para armhf como se muestra aquí:
-
Desde dentro de la carpeta TensorFlow (/myfolder/tensorflow-2.XX.0), ejecute el comando: "
make -C tensorflow/lite/tools/pip_package docker-build \ TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.10" -
ADVERTENCIA: El proceso del paso anterior puede tomar mucho tiempo, tenga paciencia.
-
Después de que el proceso termine, tome la rueda Python (Python wheel) de "
tensorflow-2.XX.0/tensorflow/lite/tools/pip_package/gen/tflite_pip/python3.10/dist" a su controlador e instálela usando pip.
AVISO: En mi experiencia el proceso funciona para Python 3.9, 3.10 y 3.11 y para releases 2.14 hasta 2.16.2. Sin embargo, releases arriba de versión 2.17 tienen un bug. Tengo un issue abierto en el repositorio GitHub de TensorFlow que puede seguirse aquí. Espero que se solucione en futuros releases.
Nota:
El Makers Blog muestra aplicaciones e historias de usuarios de miembros de la comunidad que no son probadas ni revisadas por Phoenix Contact. Úselas bajo su propio riesgo.
Tecnología Industrial
- Desbloquee un Rendimiento Superior: Beneficios de Husillos de Alta Velocidad para Micro-Mecanizado
- Experto de Camcode aporta insights sobre trazabilidad de tuberías en taller AGA, 13 oct 2016
- Potencia tus envolventes personalizadas: domina el anodizado tipo 2 y 3
- MCP6004: Cuádruple Op-Amp Rail-to-Rail Bajo Consumo - Datasheet y Aplicaciones
- Domine la Gestión de Inventario: 8 Claves Esenciales para el Éxito Empresarial
- Dominando la manufactura: Por qué una estrategia logística robusta es crítica
- Navegando el Futuro de la Robótica en la Manufactura: Tendencias y Oportunidades
- Harting Presenta Tres Kits Iniciales Completos para Aplicaciones IIoT Industriales
- Entendiendo y Eliminando la Rebaba (Flash) en Moldeo por Inyección
- Swanton Welding destacado en el vídeo «Business Spotlight» del Condado de Fulton
- Entendiendo los procesos de fabricación: Definiciones, tipos y componentes clave