Grazie per esserti sintonizzato su Google I/O. Visualizza tutte le sessioni su richiesta Guarda su richiesta

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