En esta página, se describe cómo compilar la biblioteca de Python tflite_runtime
de TensorFlow Lite para x86_64 y varios dispositivos ARM.
Las siguientes instrucciones se probaron en Ubuntu 16.04.3 PC de 64 bits (AMD64), macOS Catalina (x86_64) y TensorFlow devel Docker image tensorflow/tensorflow:devel .
requisitos previos
Necesitas CMake instalado y una copia del código fuente de TensorFlow. Consulte la página Construir TensorFlow Lite con CMake para obtener más detalles.
Para crear el paquete PIP para su estación de trabajo, puede ejecutar los siguientes comandos.
PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native
Compilación cruzada ARM
Para la compilación cruzada de ARM, se recomienda usar Docker, ya que facilita la configuración del entorno de compilación cruzada. También necesita una opción de target
para descubrir la arquitectura de destino.
Hay una herramienta auxiliar en Makefile tensorflow/lite/tools/pip_package/Makefile
disponible para invocar un comando de compilación mediante un contenedor Docker predefinido. En una máquina host Docker, puede 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 objetivos disponibles
tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh
necesita un nombre de destino para averiguar la arquitectura de destino. Aquí está la lista de objetivos admitidos.
Objetivo | Arquitectura de destino | Comentarios |
---|---|---|
brazo | VFP ARMv7 con neón | Compatible con Raspberry Pi 3 y 4 |
rpi0 | ARMv6 | Compatible con Raspberry Pi Cero |
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 construye con optimización "-mnative" |
tu estación de trabajo | Objetivo predeterminado |
Crear ejemplos
Aquí hay algunos comandos de ejemplo que puede usar.
objetivo armhf para Python 3.7
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7
objetivo 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 binarios generados no son compatibles con su objetivo, debe usar su propia cadena de herramientas o proporcionar indicadores de compilación personalizados. (Marque esto para comprender su entorno de destino) En ese caso, debe modificar tensorflow/lite/tools/cmake/download_toolchains.sh
para usar su propia cadena de herramientas. El script de la cadena de herramientas define las siguientes dos variables para el script build_pip_package_with_cmake.sh
.
Variable | Propósito | ejemplo |
---|---|---|
ARMCC_PREFIX | define el prefijo de la cadena de herramientas | brazo-linux-gnueabihf- |
ARMCC_BANDERAS | banderas de compilación | -marcha=armv7-a -mfpu=neon-vfpv4 |