Ayuda a proteger la Gran Barrera de Coral con TensorFlow en Kaggle Únete Challenge

Compilar el paquete Python Wheel de TensorFlow Lite

Esta página describe cómo construir el TensorFlow Lite tflite_runtime biblioteca de Python para x86_64 y varios dispositivos ARM.

Las siguientes instrucciones se han probado en Ubuntu 16.04.3 64-bit PC (AMD64), MacOS Catalina (x86_64) y la imagen TensorFlow devel acoplable tensorflow / tensorflow: devel .

Prerrequisitos

Necesita CMake instalado y una copia del código fuente de TensorFlow. Por favor cheque Construir TensorFlow Lite con CMake página para los 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 de ARM

Para la compilación cruzada de ARM, se recomienda utilizar Docker, ya que facilita la configuración del entorno de compilación cruzada. También se necesita un target opción para averiguar la arquitectura objetivo.

Hay un script de ayuda tensorflow/tools/ci_build/ci_build.sh disponibles para invocar un comando de generación usando un recipiente acoplable predefinido. En un ordenador central acoplable, puede ejecutar un comando de construcción con el container nombre y el target nombre de los siguientes.

tensorflow/tools/ci_build/ci_build.sh <container> \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh <target>

Contenedores Docker disponibles

Debe seleccionar el contenedor de compilación cruzada ARM para su versión de intérprete de Python de destino. Aquí está la lista de contenedores compatibles.

Envase Versión de Python compatible
PI-PYTHON37 Python 3.7
PI-PYTHON38 Python 3.8
PI-PYTHON39 Python 3.9

Nombres de destino disponibles

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh script necesita un nombre de destino de averiguar arquitectura objetivo. Aquí está la lista de objetivos admitidos.

Objetivo Arquitectura de destino Comentarios
armhf ARMv7 VFP con neón 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
Frambuesa Pi con Ubuntu Server 04/20/01 LTS 64-bit
nativo Tu puesto de trabajo Se construye con optimización "-mnative"
Tu puesto de trabajo Destino predeterminado

Ejemplos de construcción

A continuación, se muestran algunos comandos de ejemplo que puede utilizar.

destino armhf para Python 3.7

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON37 \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh armhf

destino aarch64 para Python 3.8

tensorflow/tools/ci_build/ci_build.sh PI-PYTHON38 \
  tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh aarch64

¿Cómo utilizar 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 esta para entender su entorno de destino) En ese caso, es necesario modificar tensorflow/lite/tools/cmake/download_toolchains.sh utilizar su propia cadena de herramientas. El guión cadena de herramientas define las dos variables siguientes para el build_pip_package_with_cmake.sh guión.

Variable Propósito ejemplo
ARMCC_PREFIX define el prefijo de la cadena de herramientas arm-linux-gnueabihf-
ARMCC_FLAGS banderas de compilación -march = armv7-a -mfpu = neon-vfpv4