Zbuduj pakiet koła Pythona TensorFlow Lite

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

Poniższe instrukcje zostały przetestowane na 64-bitowym komputerze 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. Aby uzyskać szczegółowe informacje, sprawdź stronę Build TensorFlow Lite z CMake .

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 Dockera, ponieważ ułatwia to konfigurację środowiska kompilacji krzyżowej. Potrzebujesz także opcji target , aby określić docelową architekturę.

W Makefile tensorflow/lite/tools/pip_package/Makefile dostępne jest narzędzie pomocnicze umożliwiające wywołanie polecenia kompilacji przy użyciu predefiniowanego kontenera Docker. Na komputerze hosta 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

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 Docelowa architektura 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 Kompiluje się z optymalizacją „-mnative”.
Twoja stacja robocza Domyślny cel

Buduj 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ą kompatybilne z twoim celem, musisz użyć własnego zestawu narzędzi lub zapewnić niestandardowe flagi kompilacji. (Zaznacz to , aby zrozumieć swoje ś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 przedrostek łańcucha narzędzi arm-linux-gnueabihf-
ARMCC_FLAGS flagi kompilacji -march=armv7-a -mfpu=neon-vfpv4