Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Crea TensorFlow Lite per Raspberry Pi

Questa pagina descrive come creare le librerie statiche e condivise di TensorFlow Lite per Raspberry Pi. Se desideri solo iniziare a utilizzare TensorFlow Lite per eseguire i tuoi modelli, l'opzione più veloce è installare il pacchetto runtime TensorFlow Lite come mostrato nella guida rapida di Python .

Compilazione incrociata per Raspberry Pi con Make

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, segui i passaggi:

Passaggio 1. Clonare la toolchain ufficiale di compilazione incrociata Raspberry Pi

git clone https://github.com/raspberrypi/tools.git rpi_tools

Passaggio 2. Clonare il repository TensorFlow

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

Passaggio 3. Eseguire il seguente script nella radice del repository TensorFlow per il download

tutte le dipendenze di compilazione:

cd tensorflow_src && ./tensorflow/lite/tools/make/download_dependencies.sh

Passaggio 4a. Per creare file binari ARMv7 per Raspberry Pi 2, 3 e 4

PATH=../rpi_tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH \
  ./tensorflow/lite/tools/make/build_rpi_lib.sh

Puoi aggiungere ulteriori opzioni Make o nomi di destinazione allo script build_rpi_lib.sh poiché è un wrapper di Make with TFLite Makefile . Ecco alcune possibili opzioni:

./tensorflow/lite/tools/make/build_rpi_lib.sh clean # clean object files
./tensorflow/lite/tools/make/build_rpi_lib.sh -j 16 # run with 16 jobs to leverage more CPU cores
./tensorflow/lite/tools/make/build_rpi_lib.sh label_image # # build label_image binary

Passaggio 4b. Per creare file binari ARMv6 per Raspberry Pi Zero

PATH=../rpi_tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin:$PATH \
  ./tensorflow/lite/tools/make/build_rpi_lib.sh TARGET_ARCH=armv6

Compila in modo nativo su Raspberry Pi

Le seguenti istruzioni sono state testate su Raspberry Pi Zero, Raspbian GNU / Linux 10 (buster), gcc versione 8.3.0 (Raspbian 8.3.0-6 + rpi1):

Per compilare in modo nativo TensorFlow Lite segui i passaggi:

Passaggio 1. Accedi al tuo Raspberry Pi e installa la toolchain

sudo apt-get install build-essential

Passaggio 2. Clonare il repository TensorFlow

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

Passaggio 3. Eseguire il seguente script nella radice del repository TensorFlow per scaricare tutte le dipendenze della build

cd tensorflow_src && ./tensorflow/lite/tools/make/download_dependencies.sh

Passaggio 4. Dovresti quindi essere in grado di compilare TensorFlow Lite con:

./tensorflow/lite/tools/make/build_rpi_lib.sh

Compilazione incrociata per armhf con Bazel

Puoi utilizzare le toolchain ARM GCC con Bazel per creare una libreria condivisa armhf compatibile con Raspberry Pi 2, 3 e 4.

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, segui i passaggi:

Passaggio 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

Passaggio 3. Crea il binario ARMv7 per Raspberry Pi 2, 3 e 4

Libreria C.
bazel build --config=elinux_armhf -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Controlla la pagina dell'API C di TensorFlow Lite per i dettagli.

Libreria C ++
bazel build --config=elinux_armhf -c opt //tensorflow/lite:libtensorflowlite.so

È possibile trovare una libreria di 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 / strumenti / punto di riferimento: benchmark_model
  • // tensorflow / lite / examples / label_image: label_image