Costruisci TensorFlow Lite per schede ARM

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