Partecipa al simposio Women in ML il 7 dicembre Registrati ora

Costruisci TensorFlow Lite per schede ARM

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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 appropriato.

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
Pacchetto XNN 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 CMake di compilazione incrociata separata.

Compilazione incrociata per ARM con Bazel

Se hai un progetto Bazel o se vuoi usare le operazioni TF, 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
armhf (ARM32) --config=elinux_armhf RPI3, RPI4 con sistema operativo Raspberry Pi a 32 bit
AArch64 (ARM64) --config=elinux_aarch64 Coral, 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, attenersi alla seguente procedura:

Passaggio 1. Installa Bazel

Bazel è il sistema di build principale per TensorFlow. Installa l'ultima versione del sistema di build Bazel .

Passaggio 2. Clonare il repository TensorFlow

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

Passaggio 3. Crea 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 .

Controllare la pagina dell'API di 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 .

Al momento, 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