דף זה תורגם על ידי Cloud Translation API.
Switch to English

בנה TensorFlow Lite עבור אנדרואיד

מסמך זה מתאר כיצד לבנות בעצמך ספריית אנדרואיד TensorFlow Lite. בדרך כלל, אינך צריך לבנות באופן מקומי את ספריית אנדרואיד TensorFlow Lite. אם אתה רק רוצה להשתמש בו, הדרך הקלה ביותר היא להשתמש ב- TensorFlow Lite AAR המתארח ב- JCenter . עיין בהפעלה מהירה של Android לקבלת פרטים נוספים על השימוש בהם בפרויקטים שלך ב- Android.

בנה את TensorFlow Lite באופן מקומי

במקרים מסוימים, ייתכן שתרצה להשתמש במבנה מקומי של TensorFlow Lite. לדוגמה, יתכן שאתה בונה בינארי מותאם אישית הכולל פעולות שנבחרו מ- TensorFlow , או שתרצה לבצע שינויים מקומיים ב- TensorFlow Lite.

הגדר סביבת לבנות באמצעות Docker

  • הורד את קובץ ה- Docker. על ידי הורדת קובץ ה- Docker, אתה מסכים שתנאי השירות הבאים קובעים את השימוש שלך בו:

בלחיצה על אישור אתה מסכים בזאת כי כל השימוש בערכת האנדרואיד של Android וב- Android Native Development יחול על ידי הסכם הרישיון של ערכת פיתוח תוכנה לאנדרואיד הזמין בכתובת https://developer.android.com/studio/terms (כתובת URL כזו עשויה להיות יעודכן או ישתנה על ידי Google מעת לעת).

עליך להכיר בתנאי השירות כדי להוריד את הקובץ. הכירו

  • באפשרותך לשנות את גרסת ה- SDK או ה- NDK של Android. שים את קובץ ה- Docker שהורדת בתיקיה ריקה ובנה את תמונת הדוקר שלך על ידי הפעלה:
docker build . -t tflite-builder -f tflite-android.Dockerfile
  • התחל את מיכל הדוקר באופן אינטראקטיבי על ידי הרכבת התיקיה הנוכחית ל- / tmp בתוך המיכל (שימו לב ש / tensorflow_src הוא מאגר TensorFlow בתוך המיכל):
docker run -it -v $PWD:/tmp tflite-builder bash

אם אתה משתמש ב- PowerShell במערכת Windows, החלף את "$ PWD" ב- "pwd".

אם תרצה להשתמש במאגר TensorFlow במארח, הר במקום זאת את ספריית המארח (-v hostDir: / tmp).

  • ברגע שאתה נמצא במכולה, אתה יכול להריץ את הדברים הבאים כדי להוריד כלים וספריות אנדרואיד נוספים (שימו לב, ייתכן שתצטרך לקבל את הרישיון):
android update sdk --no-ui -a --filter tools,platform-tools,android-${ANDROID_API_LEVEL},build-tools-${ANDROID_BUILD_TOOLS_VERSION}

כעת תוכל להמשיך לסעיף "בנה והתקנה". לאחר שתסיים לבנות את הספריות, תוכל להעתיק אותן אל / tmp בתוך המיכל כך שתוכל לגשת אליהם במארח.

הגדר סביבת לבנות ללא Docker

התקן Bazel ו- Android תנאים מוקדמים

Bazel היא מערכת הבנייה הראשית של TensorFlow. כדי לבנות איתו, עליך להתקין את זה ואת ה- NDK ו- SDK אנדרואיד במערכת שלך.

  1. התקן את הגרסה האחרונה של מערכת Bazel build .
  2. Android NDK נדרש לבנות את קוד ה- TensorFlow Lite המקורי (C / C ++). הגרסה המומלצת הנוכחית היא 17c, אשר ניתן למצוא כאן .
  3. ניתן להשיג כאן את כלי ה- SDK והבנייה של Android, או לחילופין כחלק מ- Android Studio . API לבניית כלים> = 23 הוא הגרסה המומלצת לבניית TensorFlow Lite.

קבע את התצורה של WORKSPACE ו- .Bazelrc

הפעל את ./configure התסריט בספרייה לקופה שורש TensorFlow, ואת התשובה "כן" כאשר התסריט מבקש להגדיר את אינטראקטיבי ./WORKSPACE עבור אנדרואיד בונה. הסקריפט ינסה לקבוע הגדרות באמצעות משתני הסביבה הבאים:

  • ANDROID_SDK_HOME
  • ANDROID_SDK_API_LEVEL
  • ANDROID_NDK_HOME
  • ANDROID_NDK_API_LEVEL

אם משתנים אלה אינם מוגדרים, יש לספק אותם באופן אינטראקטיבי בשורת הסקריפט. תצורה מוצלחת אמורה להניב רשומות הדומות להלן בקובץ .tf_configure.bazelrc בתיקיית השורש:

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"

בנה והתקין

לאחר התצורה נכונה של בזל, באפשרותך לבנות את TensorFlow Lite AAR מתוך ספריית תשלומי השורש באופן הבא:

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

זה יפיק קובץ AAR ב- bazel-bin/tensorflow/lite/java/ . שים לב כי זה בונה AAR "שמן" עם כמה ארכיטקטורות שונות; אם אינך זקוק לכולם, השתמש בקבוצת המשנה המתאימה לסביבת הפריסה שלך.

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

סקריפט מעל יפיק את הקובץ tensorflow-lite.aar ובאופן אופציונלי את הקובץ tensorflow-lite-select-tf-ops.aar אם אחד הדגמים משתמש ב- ops Tensorflow. לפרטים נוספים, עיין בסעיף הקטנת גודל בינארי של TensorFlow Lite .

הוסף AAR ישירות לפרויקט

העבר את הקובץ tensorflow-lite.aar לספרייה שנקראת libs בפרויקט שלך. שנה את קובץ build.gradle של האפליקציה שלך כדי להתייחס לספרייה החדשה ולהחליף את התלות הקיימת TensorFlow Lite בספריה המקומית החדשה, למשל:

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

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

התקן AAR למאגר מקומי של מייבן

בצע את הפקודה הבאה מתוך ספריית תשלומי הבסיס שלך:

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

ב build.gradle של האפליקציה שלך, וודא שיש לך את התלות mavenLocal() והחלף את התלות TensorFlow Lite הסטנדרטית עם זו שיש לה תמיכה לבחירה באפשרויות TensorFlow:

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

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

שימו לב כי גרסת 0.1.100 כאן היא אך ורק לצורך בדיקה / פיתוח. עם התקנת ה- AAR המקומי, באפשרותך להשתמש בממשקי ה- API של ה- TensorFlow Lite הרגילים ב- Java בקוד האפליקציה שלך.