En esta página, se describe cómo compilar Python para tflite_runtime
de LiteRT.
para x86_64 y varios dispositivos ARM.
Las siguientes instrucciones se probaron en Ubuntu 16.04.3 64 bits PC (AMD64) imagen de Docker para macOS Catalina (x86_64) y TensorFlow tensorflow/tensorflow:devel.
Requisitos previos
Debes tener instalado CMake y una copia del código fuente de TensorFlow. Consulta Cómo compilar LiteRT con CMake para obtener más información.
Para compilar el paquete de PIP para tu estación de trabajo, puedes ejecutar el siguiente comando: con comandos de SQL sencillos.
PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native
Compilación cruzada de ARM
Para la compilación cruzada de ARM, se recomienda usar Docker, ya que facilita
para configurar el entorno de compilación cruzada. También necesitas una opción target
para averiguar
la arquitectura de destino.
Existe una herramienta auxiliar en el archivo Make tensorflow/lite/tools/pip_package/Makefile
.
disponibles para invocar un comando de compilación con un contenedor de Docker predefinido. En una
Docker, puedes ejecutar un comando de compilación de la siguiente manera.
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>
Nombres de destinos disponibles
Necesidades de tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh
secuencia de comandos
un nombre de destino para descubrir la arquitectura de destino. Esta es la lista de proveedores
objetivos.
Objetivo | Arquitectura de objetivos | Comentarios |
---|---|---|
ArmHF | ARMv7 VFP con Neon | Compatible con Raspberry Pi 3 y 4 |
rpi0 | ARMv6 | Compatible con Raspberry Pi Zero |
aarch64 | aarch64 (ARM de 64 bits) | Coral Mendel Linux 4.0 Raspberry Pi con Ubuntu Server 20.04.01 LTS de 64 bits |
nativo | Tu estación de trabajo | Se compila con "-mnative" optimización |
predeterminado | Tu estación de trabajo | Objetivo predeterminado |
Ejemplos de compilación
Estos son algunos ejemplos de comandos que puedes usar.
Destino armhf para Python 3.7
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7
Destino aarch64 para Python 3.8
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8
¿Cómo usar una cadena de herramientas personalizada?
Si los objetos binarios generados no son compatibles con tu destino, debes usar
tu propia cadena de herramientas o proporcionar marcas de compilación personalizadas. (Verificar
este
para comprender tu entorno de destino). En ese caso, debes modificar
tensorflow/lite/tools/cmake/download_toolchains.sh
para usar tu propia cadena de herramientas.
La secuencia de comandos de la cadena de herramientas define las siguientes dos variables para el
build_pip_package_with_cmake.sh
.
Variable | Objetivo | ejemplo |
---|---|---|
ARMCC_PREFIX |
define el prefijo de la cadena de herramientas | arm-linux-gnueabihf- |
ARMCC_FLAGS |
marcas de compilación | -march=armv7-a -mfpu=neon-vfpv4 |