¡El Día de la Comunidad de ML es el 9 de noviembre! Únase a nosotros para recibir actualizaciones de TensorFlow, JAX, y más Más información

Cree TensorFlow Lite para placas ARM

En esta página, se describe cómo compilar las bibliotecas de TensorFlow Lite para computadoras basadas en ARM.

TensorFlow Lite admite dos sistemas de compilación y las funciones admitidas de cada sistema de compilación no son idénticas. Consulte la siguiente tabla para elegir un sistema de compilación adecuado.

Característica Bazel CMake
Cadenas de herramientas predefinidas armhf, aarch64 armel, armhf, aarch64
Cadenas de herramientas personalizadas más difícil de usar fácil de usar
Seleccionar operaciones TF soportado No soportado
Delegado de GPU solo disponible para Android cualquier plataforma que admita OpenCL
XNNPack soportado soportado
Rueda de Python soportado soportado
API C soportado soportado
API de C ++ apoyado para proyectos de Bazel apoyado para proyectos CMake

Compilación cruzada para ARM con CMake

Si tiene un proyecto de CMake o si desea utilizar una cadena de herramientas personalizada, será mejor que utilice CMake para la compilación cruzada. Hay una separada de compilación cruzada TensorFlow Lite con CMake página disponible para esto.

Compilación cruzada para ARM con Bazel

Si tiene un proyecto de Bazel o si desea usar operaciones TF, será mejor que use el sistema de compilación Bazel. Vamos a usar los integrados ARM GCC 8.3 cadenas de herramientas con Bazel para construir una biblioteca compartida ARM32 / 64.

Arquitectura de destino Configuración de Bazel Dispositivos compatibles
armhf (ARM32) --config = elinux_armhf RPI3, RPI4 con sistema operativo Raspberry Pi de 32 bits
AArch64 (ARM64) --config = elinux_aarch64 Coral, RPI4 con Ubuntu de 64 bits

Las siguientes instrucciones se han probado en la imagen devel ventana acoplable TensorFlow Ubuntu 16.04.3 PC 64 bits (AMD64) y tensorflow / tensorflow: devel .

Para realizar una compilación cruzada de TensorFlow Lite con Bazel, siga los pasos:

Paso 1. Instale Bazel

Bazel es el sistema de compilación principal de TensorFlow. Instalar la última versión del sistema de construcción Basel .

Paso 2. Clonar el repositorio de TensorFlow

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

Paso 3. Construya el binario ARM

Biblioteca C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Se puede encontrar una biblioteca compartida en: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Compruebe API TensorFlow Lite C página para los detalles.

Biblioteca C ++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Se puede encontrar una biblioteca compartida en: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Actualmente, no existe una forma sencilla de extraer todos los archivos de encabezado necesarios, por lo que debe incluir todos los archivos de encabezado en tensorflow / lite / desde el repositorio de TensorFlow. Además, necesitará archivos de encabezado de FlatBuffers y Abseil.

Etc.

También puede construir otros objetivos de Bazel con la cadena de herramientas. A continuación, se muestran algunos objetivos útiles.

  • // tensorflow / lite / tools / benchmark: benchmark_model
  • // tensorflow / lite / examples / label_image: label_image