Na tej stronie opisujemy, jak utworzyć bibliotekę Pythona tflite_runtime
TensorFlow Lite 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, macOS Catalina (x86_64) i Devel TensorFlow – obrazie Dockera tensorflow/tensorflow:devel.
Wymagania wstępne
Musisz mieć zainstalowany program CMake i kopię kodu źródłowego TensorFlow. Więcej informacji znajdziesz na stronie Tworzenie TensorFlow Lite za pomocą CMake.
Aby utworzyć pakiet PIP dla stacji roboczej, możesz uruchomić poniższe 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 zalecamy użycie Dockera, ponieważ ułatwia on konfigurację środowiska kompilacji w wielu systemach. Aby określić architekturę docelową, potrzebujesz także opcji target
.
W Makefile tensorflow/lite/tools/pip_package/Makefile
dostępne jest narzędzie pomocnicze, które umożliwia wywołanie polecenia kompilacji przy użyciu wstępnie zdefiniowanego kontenera Dockera. Na hoście Dockera 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
wymaga nazwy docelowej, aby określić architekturę docelową. Oto lista obsługiwanych celów.
Cel | Architektura docelowa | Komentarze |
---|---|---|
Armhf | VFP ARMv7 z neonem | Zgodny z Raspberry Pi 3 i 4 |
rpi0 | ARMv6 | Zgodny z Raspberry Pi Zero |
aarch64 | aarch64 (ARM 64-bitowa) | Coral Mendel Linux 4.0 Raspberry Pi z Ubuntu Server 20.04.01 LTS 64-bitowym |
natywna | Twoja stacja robocza | Wykorzystuje optymalizację „-mnative” |
domyślnie | Twoja stacja robocza | Domyślna wartość docelowa |
Przykłady kompilacji
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
element docelowy aarch64 dla Pythona 3.8
make -C tensorflow/lite/tools/pip_package docker-build \
TENSORFLOW_TARGET=aarch64 PYTHON_VERSION=3.8
Jak używać niestandardowego łańcucha narzędzi?
Jeśli wygenerowane pliki binarne są niezgodne z Twoim miejscem docelowym, musisz użyć własnego łańcucha narzędzi lub udostępnić niestandardowe flagi kompilacji. (kliknij to, aby poznać środowisko docelowe). W takim przypadku musisz zmodyfikować tensorflow/lite/tools/cmake/download_toolchains.sh
, aby użyć własnego łańcucha narzędzi.
Skrypt pęku narzędzi definiuje te 2 zmienne dla skryptu build_pip_package_with_cmake.sh
.
Zmienna | Purpose | przykład |
---|---|---|
ARMCC_PREFIX |
definiuje prefiks łańcucha narzędzi | arm-linux-gnueabihf- |
ARMCC_FLAGS |
flagi kompilacji | -march=armv7-a -mfpu=neon-vfpv4 |