Bantuan melindungi Great Barrier Reef dengan TensorFlow pada Kaggle Bergabung Tantangan

Bangun TensorFlow Lite untuk papan ARM

Halaman ini menjelaskan cara membuat 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
Rantai alat yang telah ditentukan sebelumnya armhf, aarch64 armel, armhf, aarch64
Rantai alat khusus lebih sulit digunakan mudah digunakan
Pilih operasi TF didukung tidak didukung
delegasi GPU hanya tersedia untuk Android platform apa pun yang mendukung OpenCL
Paket XNN didukung didukung
Roda Python didukung didukung
C API didukung didukung
C++ API didukung untuk proyek Bazel didukung untuk proyek CMake

Kompilasi silang untuk ARM dengan CMake

Jika Anda memiliki proyek CMake atau jika Anda ingin menggunakan rantai alat khusus, Anda sebaiknya menggunakan CMake untuk kompilasi silang. Ada terpisah Palang kompilasi TensorFlow Lite dengan CMake halaman yang tersedia untuk ini.

Kompilasi silang untuk ARM dengan Bazel

Jika Anda memiliki proyek Bazel atau jika Anda ingin menggunakan operasi TF, sebaiknya gunakan sistem build Bazel. Anda akan menggunakan terintegrasi ARM GCC 8.3 toolchain dengan Bazel untuk membangun sebuah ARM32 / 64 shared library.

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 pada Ubuntu 16.04.3 64-bit PC (AMD64) dan TensorFlow devel buruh pelabuhan gambar tensorflow / tensorflow: devel .

Untuk mengkompilasi silang TensorFlow Lite dengan Bazel, ikuti langkah-langkahnya:

Langkah 1. Instal Bazel

Bazel adalah sistem build utama untuk TensorFlow. Menginstal versi terbaru dari Bazel membangun sistem .

Langkah 2. Kloning repositori TensorFlow

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

Langkah 3. Bangun biner ARM

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

Anda dapat menemukan shared library di: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so .

Periksa API TensorFlow Lite C halaman untuk detail.

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

Anda dapat menemukan shared library di: bazel-bin/tensorflow/lite/libtensorflowlite.so .

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

dll

Anda juga dapat membangun target Bazel lainnya dengan rantai alat. Berikut adalah beberapa target yang berguna.

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