Na tej stronie opisano, jak zbudować biblioteki statyczne i współużytkowane TensorFlow Lite dla komputerów z procesorem ARM64. Jeśli chcesz po prostu zacząć używać TensorFlow Lite do wykonywania modeli, najszybszą opcją jest zainstalowanie pakietu wykonawczego TensorFlow Lite, jak pokazano w przewodniku Szybki start dla języka Python .
Kompilacja krzyżowa dla ARM64 z Make
Aby zapewnić odpowiednie środowisko kompilacji, zalecamy użycie jednego z naszych obrazów TensorFlow Docker, takiego jak tensorflow / tensorflow: devel .
Aby rozpocząć, zainstaluj łańcuch narzędzi i biblioteki:
sudo apt-get update
sudo apt-get install crossbuild-essential-arm64
Jeśli używasz Dockera, nie możesz używać sudo
.
Teraz git-sklonuj repozytorium TensorFlow ( https://github.com/tensorflow/tensorflow ) - jeśli używasz obrazu TensorFlow Docker, repozytorium jest już dostępne w /tensorflow_src/
- i uruchom ten skrypt w katalogu głównym repozytorium TensorFlow do pobrania wszystkich zależności kompilacji:
./tensorflow/lite/tools/make/download_dependencies.sh
Pamiętaj, że wystarczy to zrobić tylko raz.
Następnie skompiluj:
./tensorflow/lite/tools/make/build_aarch64_lib.sh
Powinno to skompilować bibliotekę statyczną w: tensorflow/lite/tools/make/gen/linux_aarch64/lib/libtensorflow-lite.a
.
Kompiluj natywnie na ARM64
Te kroki zostały przetestowane na HardKernel Odroid C2, gcc w wersji 5.4.0.
Zaloguj się do swojej tablicy i zainstaluj toolchain:
sudo apt-get install build-essential
Teraz git-sklonuj repozytorium TensorFlow ( https://github.com/tensorflow/tensorflow ) i uruchom to w katalogu głównym repozytorium:
./tensorflow/lite/tools/make/download_dependencies.sh
Pamiętaj, że wystarczy to zrobić tylko raz.
Następnie skompiluj:
./tensorflow/lite/tools/make/build_aarch64_lib.sh
Powinno to skompilować bibliotekę statyczną w: tensorflow/lite/tools/make/gen/linux_aarch64/lib/libtensorflow-lite.a
.
Kompilacja krzyżowa dla ARM64 z Bazel
Możesz użyć łańcuchów narzędzi ARM GCC z Bazel, aby zbudować współdzieloną bibliotekę ARM64.
Poniższe instrukcje zostały przetestowane na 64-bitowym komputerze z systemem Ubuntu 16.04.3 (AMD64) i TensorFlow devel docker image tensorflow / tensorflow: devel .
Aby skompilować krzyżowo TensorFlow Lite z Bazel, wykonaj następujące czynności:
Krok 1. Zainstaluj Bazel
Bazel to podstawowy system kompilacji dla TensorFlow. Zainstaluj najnowszą wersję systemu kompilacji Bazel .
Krok 2. Sklonuj repozytorium TensorFlow
git clone https://github.com/tensorflow/tensorflow.git tensorflow_src
Krok 3. Zbuduj plik binarny ARM64
Biblioteka C.
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so
Szczegółowe informacje można znaleźć na stronie TensorFlow Lite C API .
Biblioteka C ++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Bibliotekę współdzieloną można znaleźć w: bazel-bin/tensorflow/lite/libtensorflowlite.so
.
Obecnie nie ma prostego sposobu na wyodrębnienie wszystkich potrzebnych plików nagłówkowych, dlatego należy dołączyć wszystkie pliki nagłówkowe do tensorflow / lite / z repozytorium TensorFlow. Dodatkowo będziesz potrzebować plików nagłówkowych z FlatBuffers i Abseil.
Itp
Możesz także zbudować inne cele Bazel za pomocą łańcucha narzędzi. Oto kilka przydatnych celów.
- // tensorflow / lite / tools / benchmark: benchmark_model
- // tensorflow / lite / examples / label_image: label_image