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 |