Questa pagina descrive come creare le librerie TensorFlow Lite per i computer basati su ARM.
TensorFlow Lite supporta due sistemi di build e le funzionalità supportate da ogni sistema di build non sono identiche. Controlla la tabella seguente per scegliere un sistema di build appropriato.
Funzionalità | Bazel | CMake |
---|---|---|
Toolchain predefinite | armhf, aarch64 | armel, armhf, aarch64 |
Toolchain personalizzate | più difficili da usare | facile da usare |
Seleziona operazioni TF | supportata | not_supported |
Delegato GPU | disponibile solo per Android | su qualsiasi piattaforma che supporti OpenCL |
XNNPack | supportata | supportata |
Ruota Python | supportata | supportata |
API C | supportata | supportato |
API C++ | supportata per i progetti Bazel | supportata per progetti CMake |
Cross-compilazione per ARM con CMake
Se hai un progetto CMake o se vuoi usare una toolchain personalizzata, è preferibile usare CMake per la compilazione incrociata. A questo scopo, è disponibile una pagina Cross Compilation TensorFlow Lite with CMake disponibile.
Cross-compilazione per ARM con Bazel
Se hai un progetto Bazel o se vuoi usare operazioni TF, ti consigliamo di 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 |
---|---|---|
armhf (ARM32) | --config=elinux_armhf | RPI3, RPI4 con sistema operativo Raspberry Pi a 32 bit |
AArch64 (ARM64) | --config=elinux_aarch64 | Corallo, RPI4 con Ubuntu a 64 bit |
Le seguenti istruzioni sono state testate su Ubuntu 16.04.3 a 64 bit (AMD64) e TensorFlow Developer Docker Image tensorflow/tensorflow:devel.
Per eseguire la compilazione incrociata di TensorFlow Lite con Bazel:
Passaggio 1. Installa Bazel
Bazel è il sistema di build principale di TensorFlow. Installa la versione più recente del sistema di build Bazel.
Passaggio 2. Clona il repository TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Passaggio 3. Crea programma 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
.
Per i dettagli, consulta la pagina API TensorFlow Lite C.
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 devi includere tutti i file di intestazione in tensorflow/lite/ dal repository TensorFlow. Inoltre, saranno necessari i file di intestazione di FlatBuffers e Abseil.
E così via
Puoi anche creare altri obiettivi Bazel con la toolchain. Ecco alcuni target utili.
- //tensorflow/lite/tools/benchmark:benchmark_model
- //tensorflow/lite/examples/label_image:label_image