Questa pagina descrive come creare le librerie TensorFlow Lite per computer basati su ARM.
TensorFlow Lite supporta due sistemi di build e le funzionalità supportate da ciascun sistema di build non sono identiche. Controlla la tabella seguente per scegliere un sistema di compilazione adeguato.
Caratteristica | Bazel | CMake |
---|---|---|
Toolchain predefinite | armhf, aarch64 | armel, armhf, aarch64 |
Toolchain personalizzate | più difficile da usare | facile da usare |
Seleziona operazioni TF | supportato | non supportato |
Delegato GPU | disponibile solo per Android | qualsiasi piattaforma che supporti OpenCL |
XNNPack | supportato | supportato |
Ruota in pitone | supportato | supportato |
API C | supportato | supportato |
API C++ | supportato per i progetti Bazel | supportato per i progetti CMake |
Compilazione incrociata per ARM con CMake
Se hai un progetto CMake o se desideri utilizzare una toolchain personalizzata, è meglio utilizzare CMake per la compilazione incrociata. A questo scopo è disponibile una pagina TensorFlow Lite con compilazione incrociata separata con CMake .
Compilazione incrociata per ARM con Bazel
Se hai un progetto Bazel o se desideri utilizzare le operazioni TF, faresti meglio a utilizzare il sistema di compilazione Bazel. Utilizzerai le toolchain ARM GCC 8.3 integrate con Bazel per creare una libreria condivisa ARM32/64.
Architettura di destinazione | Configurazione Bazel | Dispositivi compatibili |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 con sistema operativo Raspberry Pi a 32 bit |
AArch64 (ARM64) | --config=elinux_aarch64 | Corallo, RPI4 con Ubuntu 64 bit |
Le seguenti istruzioni sono state testate su Ubuntu 16.04.3 PC a 64 bit (AMD64) e TensorFlow devel docker image tensorflow/tensorflow:devel .
Per eseguire la compilazione incrociata di TensorFlow Lite con Bazel, seguire i passaggi:
Passaggio 1. Installa Bazel
Bazel è il sistema di build principale per TensorFlow. Installa l'ultima versione del sistema di compilazione Bazel .
Passaggio 2. Clonare il repository TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Passaggio 3. Costruisci il binario ARM
Biblioteca C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Puoi trovare una libreria condivisa in: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Controlla la pagina dell'API TensorFlow Lite C per i dettagli.
Libreria C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Puoi trovare una libreria condivisa in: bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Attualmente non esiste un modo semplice per estrarre tutti i file di intestazione necessari, quindi è necessario includere tutti i file di intestazione in tensorflow/lite/ dal repository TensorFlow. Inoltre, avrai bisogno dei file di intestazione di FlatBuffers e Abseil.
Eccetera
Puoi anche costruire altri bersagli Bazel con la toolchain. Ecco alcuni obiettivi utili.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image