Zbuduj pakiet kołowy Pythona TensorFlow Lite

Na tej stronie opisano, jak zbudować bibliotekę TensorFlow Lite tflite_runtime Python dla x86_64 i różnych urządzeń ARM.

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

Wymagania wstępne

Potrzebujesz zainstalowanego CMake i kopii kodu źródłowego TensorFlow. Sprawdź stronę Build TensorFlow Lite z 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ę korzystanie z platformy Docker, ponieważ ułatwia to konfigurację środowiska kompilacji krzyżowej. Potrzebujesz także opcji target , aby określić architekturę docelową.

W Makefile tensorflow/lite/tools/pip_package/Makefile dostępne jest narzędzie pomocnicze do wywołania polecenia kompilacji przy użyciu predefiniowanego kontenera Docker. Na komputerze hosta platformy Docker możesz 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 celów

skrypt tensorflow/lite/tools/pip_package/build_pip_package_with_cmake.sh potrzebuje 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
aarch64 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

Zbuduj przykłady

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

Cel aarch64 dla Pythona 3.8

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

Jak korzystać z niestandardowego łańcucha narzędzi?

Jeśli wygenerowane pliki binarne nie są zgodne z twoim celem, musisz użyć własnego łańcucha 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 łańcucha narzędzi definiuje następujące dwie zmienne dla skryptu build_pip_package_with_cmake.sh .

Zmienny Zamiar przykład
ARMCC_PREFIX definiuje przedrostek łańcucha narzędzi arm-linux-gnueabihf-
ARMCC_FLAGS flagi kompilacji -march=armv7-a -mfpu=neon-vfpv4