Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Bangun TensorFlow Lite untuk Android

Dokumen ini menjelaskan cara membuat library Android TensorFlow Lite Anda sendiri. Biasanya, Anda tidak perlu membuat library Android TensorFlow Lite secara lokal. Jika Anda hanya ingin menggunakannya, cara termudah adalah menggunakan TensorFlow Lite AAR yang dihosting di JCenter . Lihat panduan memulai Android untuk detail selengkapnya tentang cara menggunakannya dalam proyek Android Anda.

Bangun TensorFlow Lite secara lokal

Dalam beberapa kasus, Anda mungkin ingin menggunakan build lokal TensorFlow Lite. Misalnya, Anda mungkin membuat biner kustom yang menyertakan operasi yang dipilih dari TensorFlow , atau Anda mungkin ingin membuat perubahan lokal pada TensorFlow Lite.

Siapkan lingkungan build menggunakan Docker

  • Unduh file Docker. Dengan mengunduh file Docker, Anda setuju bahwa persyaratan layanan berikut mengatur penggunaan Anda padanya:

Dengan mengeklik setuju, Anda dengan ini setuju bahwa semua penggunaan Android Studio dan Android Native Development Kit akan diatur oleh Perjanjian Lisensi Kit Pengembangan Perangkat Lunak Android yang tersedia di https://developer.android.com/studio/terms (URL tersebut mungkin diperbarui atau diubah oleh Google dari waktu ke waktu).

Anda harus menyetujui persyaratan layanan untuk mendownload file tersebut. Akui

  • Secara opsional, Anda dapat mengubah versi Android SDK atau NDK. Letakkan file Docker yang diunduh di folder kosong dan buat image buruh pelabuhan Anda dengan menjalankan:
docker build . -t tflite-builder -f tflite-android.Dockerfile
  • Mulai container docker secara interaktif dengan memasang folder Anda saat ini ke / tmp di dalam container (perhatikan bahwa / tensorflow_src adalah repositori TensorFlow di dalam container):
docker run -it -v $PWD:/tmp tflite-builder bash

Jika Anda menggunakan PowerShell di Windows, ganti "$ PWD" dengan "pwd".

Jika Anda ingin menggunakan repositori TensorFlow pada host, pasang direktori host tersebut sebagai gantinya (-v hostDir: / tmp).

  • Setelah Anda berada di dalam container, Anda dapat menjalankan perintah berikut untuk mendownload alat dan pustaka Android tambahan (perhatikan bahwa Anda mungkin perlu menerima lisensi):
android update sdk --no-ui -a --filter tools,platform-tools,android-${ANDROID_API_LEVEL},build-tools-${ANDROID_BUILD_TOOLS_VERSION}

Sekarang Anda dapat melanjutkan ke bagian "Bangun dan Pasang". Setelah Anda selesai membangun perpustakaan, Anda dapat menyalinnya ke / tmp di dalam wadah sehingga Anda dapat mengaksesnya di host.

Siapkan lingkungan build tanpa Docker

Instal Prasyarat Bazel dan Android

Bazel adalah sistem build utama untuk TensorFlow. Untuk membuatnya, Anda harus memilikinya dan Android NDK dan SDK diinstal pada sistem Anda.

  1. Instal versi terbaru dari sistem build Bazel .
  2. Android NDK diperlukan untuk membuat kode TensorFlow Lite native (C / C ++). Versi yang disarankan saat ini adalah 17c, yang dapat ditemukan di sini .
  3. Android SDK dan alat build dapat diperoleh di sini , atau sebagai alternatif dari Android Studio . Build tools API> = 23 adalah versi yang direkomendasikan untuk membuat TensorFlow Lite.

Konfigurasikan WORKSPACE dan .bazelrc

Jalankan skrip ./configure di root direktori checkout TensorFlow, dan jawab "Ya" saat skrip meminta untuk mengonfigurasi ./WORKSPACE untuk Android secara interaktif. Skrip akan mencoba mengonfigurasi pengaturan menggunakan variabel lingkungan berikut:

  • ANDROID_SDK_HOME
  • ANDROID_SDK_API_LEVEL
  • ANDROID_NDK_HOME
  • ANDROID_NDK_API_LEVEL

Jika variabel ini tidak disetel, mereka harus disediakan secara interaktif di prompt skrip. Konfigurasi yang berhasil akan menghasilkan entri yang mirip dengan berikut ini di file .tf_configure.bazelrc di folder root:

build --action_env ANDROID_NDK_HOME="/usr/local/android/android-ndk-r17c"
build --action_env ANDROID_NDK_API_LEVEL="21"
build --action_env ANDROID_BUILD_TOOLS_VERSION="28.0.3"
build --action_env ANDROID_SDK_API_LEVEL="23"
build --action_env ANDROID_SDK_HOME="/usr/local/android/android-sdk-linux"

Bangun dan pasang

Setelah Bazel dikonfigurasi dengan benar, Anda dapat membuat TensorFlow Lite AAR dari direktori checkout root sebagai berikut:

bazel build -c opt --fat_apk_cpu=x86,x86_64,arm64-v8a,armeabi-v7a \
  --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \
  //tensorflow/lite/java:tensorflow-lite

Ini akan menghasilkan file AAR di bazel-bin/tensorflow/lite/java/ . Perhatikan bahwa ini membangun AAR yang "gemuk" dengan beberapa arsitektur berbeda; jika Anda tidak membutuhkan semuanya, gunakan subset yang sesuai untuk lingkungan penerapan Anda.

bash tensorflow/lite/tools/build_aar.sh \
  --input_models=model1,model2 \
  --target_archs=x86,x86_64,arm64-v8a,armeabi-v7a

Skrip di atas akan menghasilkan file tensorflow-lite.aar dan secara opsional file tensorflow-lite-select-tf-ops.aar jika salah satu model menggunakan operasi Tensorflow. Untuk detail selengkapnya, lihat bagian Mengurangi ukuran biner TensorFlow Lite .

Tambahkan AAR langsung ke proyek

Pindahkan file tensorflow-lite.aar ke dalam direktori bernama libs dalam proyek Anda. Ubah file build.gradle aplikasi Anda untuk mereferensikan direktori baru dan ganti dependensi TensorFlow Lite yang ada dengan perpustakaan lokal baru, misalnya:

allprojects {
    repositories {
        jcenter()
        flatDir {
            dirs 'libs'
        }
    }
}

dependencies {
    compile(name:'tensorflow-lite', ext:'aar')
}

Instal AAR ke repositori Maven lokal

Jalankan perintah berikut dari direktori checkout root Anda:

mvn install:install-file \
  -Dfile=bazel-bin/tensorflow/lite/java/tensorflow-lite.aar \
  -DgroupId=org.tensorflow \
  -DartifactId=tensorflow-lite -Dversion=0.1.100 -Dpackaging=aar

Di build.gradle aplikasi Anda, pastikan Anda memiliki dependensi mavenLocal() dan ganti dependensi TensorFlow Lite standar dengan dependensi yang mendukung operasi TensorFlow tertentu:

allprojects {
    repositories {
        jcenter()
        mavenLocal()
    }
}

dependencies {
    implementation 'org.tensorflow:tensorflow-lite:0.1.100'
}

Perhatikan bahwa versi 0.1.100 sini murni untuk keperluan pengujian / pengembangan. Dengan AAR lokal terinstal, Anda dapat menggunakan API inferensi Java TensorFlow Lite standar dalam kode aplikasi Anda.