Questa pagina descrive come creare le librerie TensorFlow Lite per computer basati su ARM.
TensorFlow Lite supporta due sistemi di compilazione e le funzionalità supportate da ciascun sistema di compilazione 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 di 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. Per questo è disponibile una pagina TensorFlow Lite con compilazione incrociata separata con CMake .
Compilazione incrociata per ARM con Bazel
Se hai un progetto Bazel o se vuoi usare TF ops, faresti meglio a usare il sistema di build 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 |
---|---|---|
armf (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:
Passo 1. Installa Bazel
Bazel è il sistema di compilazione 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
Passo 3. Costruisci il binario ARM
libreria 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 C di TensorFlow Lite 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 di file di intestazione da 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