Esta página describe cómo crear 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 construcción adecuado.
Característica | Bazel | Chacer |
---|---|---|
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 | apoyado | no soportado |
delegado de GPU | sólo disponible para Android | cualquier plataforma que soporte OpenCL |
Paquete XNN | apoyado | apoyado |
Rueda de pitón | apoyado | apoyado |
APIC | apoyado | apoyado |
API C++ | apoyado para proyectos Bazel | compatible con 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 página separada de compilación cruzada de TensorFlow Lite con CMake disponible para esto.
Compilación cruzada para ARM con Bazel
Si tiene un proyecto Bazel o si desea utilizar operaciones TF, será mejor que utilice el sistema de compilación Bazel. Utilizará las cadenas de herramientas integradas ARM GCC 8.3 con Bazel para crear una biblioteca compartida ARM32/64.
Arquitectura de destino | Configuración de Bazel | Dispositivos compatibles |
---|---|---|
brazohf (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 una PC Ubuntu 16.04.3 de 64 bits (AMD64) y en la imagen de la ventana acoplable TensorFlow devel 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. Instale la última versión del sistema de compilación Bazel .
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
Puede encontrar una biblioteca compartida en: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Consulte la página API de TensorFlow Lite C para obtener más detalles.
biblioteca C ++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Puede encontrar una biblioteca compartida en: bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Actualmente, no existe una manera sencilla de extraer todos los archivos de encabezado necesarios, por lo que debes 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 puedes crear 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