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 halaman kompilasi silang TensorFlow Lite dengan CMake 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 rantai alat ARM GCC 8.3 terintegrasi dengan Bazel untuk membangun perpustakaan 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 pada Ubuntu 16.04.3 PC 64-bit (AMD64) dan TensorFlow devel docker image tensorflow/tensorflow:devel .
Untuk mengkompilasi silang TensorFlow Lite dengan Bazel, ikuti langkah-langkahnya:
Langkah 1. Instal Bazel
Bazel adalah sistem build utama untuk TensorFlow. Instal versi terbaru dari sistem pembangunan Bazel .
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 perpustakaan bersama di: bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so
.
Periksa halaman TensorFlow Lite C API untuk detailnya.
pustaka C++
bazel build --config=elinux_aarch64 -c opt //tensorflow/lite:libtensorflowlite.so
Anda dapat menemukan perpustakaan bersama 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