Membangun TensorFlow Lite untuk board ARM

Halaman ini menjelaskan cara membangun library TensorFlow Lite untuk komputer berbasis ARM.

TensorFlow Lite mendukung dua sistem build dan fitur yang didukung dari setiap sistem build tidak identik. Periksa tabel berikut untuk memilih sistem build yang tepat.

Fitur Bazel CMake
Toolchain yang telah ditentukan sebelumnya armhf, aarch64 armel, armhf, aarch64
Toolchain kustom lebih sulit untuk digunakan mudah untuk digunakan
Pilih operasi TF didukung tidak didukung
Delegasi GPU hanya tersedia untuk Android platform apa pun yang mendukung OpenCL
XNNPack didukung didukung
Roda Python didukung didukung
C API didukung didukung
C++ API didukung untuk project Bazel didukung untuk project CMake

Kompilasi silang untuk ARM dengan CMake

Jika Anda memiliki project CMake atau ingin menggunakan toolchain kustom, sebaiknya gunakan CMake untuk kompilasi silang. Ada halaman kompilasi silang TensorFlow Lite dengan CMake terpisah yang tersedia untuk ini.

Kompilasi silang untuk ARM dengan Bazel

Jika Anda memiliki project Bazel atau ingin menggunakan operasi TF, sebaiknya gunakan sistem build Bazel. Anda akan menggunakan Toolchain ARM GCC 8.3 terintegrasi dengan Bazel untuk membuat library bersama ARM32/64.

Arsitektur Target Konfigurasi Bazel Perangkat yang Kompatibel
Armhf (ARM32) --config=elinux_armhf RPI3, RPI4 dengan 32 bit raspberry Pi OS
AArch64 (ARM64) --config=elinux_aarch64 Coral, RPI4 dengan Ubuntu 64 bit

Petunjuk berikut telah diuji di PC 64-bit Ubuntu 16.04.3 (AMD64) dan image Docker devel TensorFlow tensorflow/tensorflow:devel.

Untuk mengompilasi TensorFlow Lite dengan Bazel, ikuti langkah-langkah berikut:

Langkah 1. Instal Bazel

Bazel adalah sistem build utama untuk TensorFlow. Instal versi terbaru sistem build Bazel.

Langkah 2: Meng-clone repositori TensorFlow

git clone https://github.com/tensorflow/tensorflow.git tensorflow_src

Langkah 3. Biner ARM build

Library C
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite/c:libtensorflowlite_c.so

Anda dapat menemukan pustaka bersama di: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so.

Lihat halaman TensorFlow Lite C API untuk mengetahui detailnya.

Library C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so

Anda dapat menemukan pustaka bersama di: bazel-bin/tensorflow/lite/libtensorflowlite.so.

Saat ini, tidak ada cara mudah untuk mengekstrak semua file header yang diperlukan, sehingga Anda harus menyertakan semua file header di tensorflow/lite/ dari repositori TensorFlow. Selain itu, Anda akan memerlukan file header dari FlatBuffers dan Abseil.

Dst.

Anda juga dapat membangun target Bazel lainnya dengan toolchain. Berikut beberapa target yang berguna.

  • //tensorflow/lite/tools/benchmark:benchmark_model
  • //tensorflow/lite/examples/label_image:label_image