Odpowiedz już dziś na lokalne wydarzenie TensorFlow Everywhere!
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Zbuduj TensorFlow Lite dla Raspberry Pi

Ta strona opisuje, jak zbudować statyczne i współdzielone biblioteki TensorFlow Lite dla Raspberry Pi. Jeśli chcesz po prostu zacząć używać TensorFlow Lite do wykonywania modeli, najszybszą opcją jest zainstalowanie pakietu wykonawczego TensorFlow Lite, jak pokazano w przewodniku Szybki start dla języka Python .

Kompilacja krzyżowa dla Raspberry Pi z Make

Poniższe instrukcje zostały przetestowane na 64-bitowym komputerze PC z systemem Ubuntu 16.04.3 (AMD64) i TensorFlow devel docker image tensorflow / tensorflow: devel .

Aby skompilować krzyżowo TensorFlow Lite, wykonaj następujące kroki:

Krok 1. Sklonuj oficjalny łańcuch narzędzi kompilacji Raspberry Pi

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

Krok 2. Sklonuj repozytorium TensorFlow

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

Krok 3. Uruchom następujący skrypt w katalogu głównym repozytorium TensorFlow, aby pobrać

wszystkie zależności kompilacji:

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

Krok 4a. Aby zbudować plik binarny ARMv7 dla Raspberry Pi 2, 3 i 4

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

Możesz dodać dodatkowe opcje Make lub nazwy docelowe do skryptu build_rpi_lib.sh ponieważ jest to opakowanie Make with TFLite Makefile . Oto kilka możliwych opcji:

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

Krok 4b. Aby zbudować plik binarny ARMv6 dla 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

Kompiluj natywnie na Raspberry Pi

Poniższe instrukcje zostały przetestowane na Raspberry Pi Zero, Raspberry Pi OS GNU / Linux 10 (Buster), gcc w wersji 8.3.0 (Raspbian 8.3.0-6 + rpi1):

Aby natywnie skompilować TensorFlow Lite, wykonaj następujące kroki:

Krok 1. Zaloguj się do swojego Raspberry Pi i zainstaluj toolchain

sudo apt-get install build-essential

Krok 2. Sklonuj repozytorium TensorFlow

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

Krok 3. Uruchom następujący skrypt w katalogu głównym repozytorium TensorFlow, aby pobrać wszystkie zależności kompilacji

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

Krok 4. Następnie powinieneś być w stanie skompilować TensorFlow Lite z:

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

Kompilacja krzyżowa dla armhf z Bazel

Możesz użyć łańcuchów narzędzi ARM GCC z Bazel, aby zbudować współdzieloną bibliotekę armhf, która jest kompatybilna z Raspberry Pi 2, 3 i 4.

Poniższe instrukcje zostały przetestowane na 64-bitowym komputerze z systemem Ubuntu 16.04.3 (AMD64) i TensorFlow devel docker image tensorflow / tensorflow: devel .

Aby skompilować krzyżowo TensorFlow Lite z Bazel, wykonaj następujące czynności:

Krok 1. Zainstaluj Bazel

Bazel to podstawowy system kompilacji dla TensorFlow. Zainstaluj najnowszą wersję systemu kompilacji Bazel .

Krok 2. Sklonuj repozytorium TensorFlow

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

Krok 3. Zbuduj plik binarny ARMv7 dla Raspberry Pi 2, 3 i 4

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

Szczegółowe informacje można znaleźć na stronie TensorFlow Lite C API .

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

Bibliotekę współdzieloną można znaleźć w: bazel-bin/tensorflow/lite/libtensorflowlite.so .

Obecnie nie ma prostego sposobu na wyodrębnienie wszystkich potrzebnych plików nagłówkowych, dlatego należy dołączyć wszystkie pliki nagłówkowe do tensorflow / lite / z repozytorium TensorFlow. Dodatkowo będziesz potrzebować plików nagłówkowych z FlatBuffers i Abseil.

Itp

Możesz także zbudować inne cele Bazel za pomocą łańcucha narzędzi. Oto kilka przydatnych celów.

  • // tensorflow / lite / tools / benchmark: benchmark_model
  • // tensorflow / lite / examples / label_image: label_image