Zbuduj pakiet kołowy Pythona TensorFlow Lite

Ta strona opisuje, jak zbudować bibliotekę Python tflite_runtime TensorFlow Lite dla x86_64 i różnych urządzeń ARM.

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

Warunki wstępne

Potrzebujesz zainstalowanego CMake i kopii kodu źródłowego TensorFlow. Sprawdź stronę Build TensorFlow Lite za pomocą CMake , aby uzyskać szczegółowe informacje.

Aby zbudować pakiet PIP dla swojej stacji roboczej, możesz uruchomić następujące polecenia.

PYTHON=python3 tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh native

Kompilacja krzyżowa ARM

W przypadku kompilacji krzyżowej ARM zaleca się użycie platformy Docker, ponieważ ułatwia to konfigurację środowiska kompilacji krzyżowej. Potrzebujesz również opcji target , aby określić docelową architekturę.

W Makefile tensorflow/lite/tools/pip_package/Makefile dostępne jest narzędzie pomocnicze do wywoływania polecenia budowania przy użyciu predefiniowanego kontenera Dockera. Na komputerze hosta platformy Docker można uruchomić polecenie kompilacji w następujący sposób.

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=<target> PYTHON_VERSION=<python3 version>

Dostępne nazwy docelowe

tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh wymaga nazwy docelowej, aby określić docelową architekturę. Oto lista obsługiwanych celów.

Cel Architektura docelowa Uwagi
armhf ARMv7 VFP z neonem Kompatybilny z Raspberry Pi 3 i 4
rpi0 ARMv6 Kompatybilny z Raspberry Pi Zero
arch64 aarch64 (ARM 64-bitowy) Coral Mendel Linux 4.0
Raspberry Pi z Ubuntu Server 20.04.01 LTS 64-bit
rodzinny Twoja stacja robocza Buduje z optymalizacją „-mnative”
Twoja stacja robocza Domyślny cel

Przykłady budowania

Oto kilka przykładowych poleceń, których możesz użyć.

cel armhf dla Pythona 3.7

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=armhf PYTHON_VERSION=3.7

aarch64 cel dla Pythona 3.8

make -C tensorflow/lite/tools/pip_package docker-build \
  TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8

Jak korzystać z niestandardowego zestawu narzędzi?

Jeśli wygenerowane pliki binarne nie są kompatybilne z celem, musisz użyć własnego zestawu narzędzi lub dostarczyć niestandardowe flagi kompilacji. (Zaznacz to , aby zrozumieć środowisko docelowe) W takim przypadku musisz zmodyfikować tensorflow/lite/tools/cmake/download_toolchains.sh , aby używać własnego łańcucha narzędzi. Skrypt toolchain definiuje następujące dwie zmienne dla skryptu build_pip_package_with_cmake.sh .

Zmienny Zamiar przykład
ARMCC_PREFIX definiuje prefiks toolchain ramię-linux-gnueabihf-
ARMCC_FLAGS flagi kompilacji -marzec=armv7-a -mfpu=neon-vfpv4