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 |