כלי פיתוח ל-Android

LiteRT מספק מספר כלים לשילוב מודלים ב-Android תרגום מכונה. בדף הזה מתוארים כלים למפתחים שמיועדים לשימוש בפיתוח אפליקציות עם Kotlin , Java ו-C++ , וכן תמיכה בפיתוח LiteRT ב-Android Studio.

כלים לבנייה עם Kotlin ו-Java

בקטעים הבאים מתוארים כלי פיתוח של LiteRT שמשתמשים בהם את השפות Kotlin ו-Java.

ספריית LiteRT

להשתמש בספריית LiteRT באפליקציה ל-Android על ידי הוספת ה-AAR שמתארח בכתובת MavenCentral לפרויקט הפיתוח שלכם.

אפשר לציין זאת ביחסי התלות של build.gradle באופן הבא:

dependencies {
    ...
    implementation 'com.google.ai.edge.litert:+'
}

repositories {
    ...
    google()
}

אם אתם משתמשים בתמונות מצב ליליות, הקפידו להוסיף את תמונת המצב של Sonatype למאגר בפרויקט.

AAR זה כולל קבצים בינאריים עבור כל Android ממשקי ABI. אפשר להקטין את הגודל של את הקובץ הבינארי של האפליקציה, על ידי הכללה רק של ממשקי ה-ABI שדרושים לך תמיכה בהם.

אם אין טירגוט לחומרה ספציפית, צריך להשמיט את x86, x86_64, ו-arm32 ממשקי ABI ברוב המקרים. אפשר להגדיר את זה באמצעות Gradle הבאה הגדרה אישית. באופן ספציפי, הוא כולל רק את armeabi-v7a ואת arm64-v8a, וכן אמורים לכסות את רוב מכשירי Android המודרניים.

android {
    defaultConfig {
        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a'
        }
    }
}

מידע נוסף על abiFilters זמין ב-Android ממשקי ABI ב-Android NDK התיעוד.

ספריית התמיכה של LiteRT

ספריית התמיכה של LiteRT ב-Android מאפשרת לשלב מודלים בקלות רבה יותר לאפליקציה. הוא מספק ממשקי API ברמה גבוהה שעוזרים בטרנספורמציה של קלט גולמי לנתונים לצורה הנדרשת על ידי המודל ולפרש את הפלט של המודל, הפחתת הכמות הנדרשת של קוד סטנדרטי.

הוא תומך בפורמטים נפוצים של נתונים עבור קלט ופלט, כולל תמונות מערכים מגוונים. הוא גם מספק יחידות לפני ואחרי עיבוד, שמבצעות משימות כמו בתור שינוי הגודל וחיתוך של התמונה.

שימוש בספריית התמיכה באפליקציה ל-Android על ידי הכללת LiteRT ספריית תמיכה AAR מתארחת בכתובת MavenCentral.

אפשר לציין זאת ביחסי התלות של build.gradle באופן הבא:

dependencies {
    implementation 'com.google.ai.edge.litert:litert-support:+'
}

אם אתם משתמשים בתמונות מצב ליליות, הקפידו להוסיף את תמונת המצב של Sonatype למאגר בפרויקט.

הוראות לתחילת העבודה זמינות בתמיכה של LiteRT ב-Android ספרייה.

באמצעות Android Studio

בנוסף לספריות הפיתוח שתוארו למעלה, גם Android Studio מספקת תמיכה בשילוב מודלים של LiteRT, כפי שמתואר בהמשך.

קישור מודלים של למידת מכונה ב-Android Studio

התכונה 'קישור מודלים של למידת מכונה' ב-Android Studio 4.1 ואילך מאפשרת לך: לייבא .tflite קובצי מודל לאפליקציה הקיימת ל-Android וליצור סיווגי ממשק כדי שיהיה קל יותר לשלב את הקוד במודל.

כדי לייבא מודל LiteRT:

  1. לוחצים לחיצה ימנית על המודול שבו רוצים להשתמש במודל LiteRT, או לוחצים על קובץ > חדש > אחר > דגם LiteRT.

  2. בוחרים את המיקום של קובץ LiteRT. שימו לב שהכלים מגדיר את התלות של המודול באמצעות קישור של מודל למידת מכונה, ובאופן אוטומטי מוסיפה את כל יחסי התלות הנדרשים לקובץ build.gradle של מודול Android.

  3. לוחצים על Finish כדי להתחיל בתהליך הייבוא. כשהייבוא יסתיים, מציג מסך שמתאר את המודל, כולל הקלט והפלט שלו את Tensors.

  4. כדי להתחיל להשתמש במודל, בוחרים באפשרות Kotlin או Java, מעתיקים ומדביקים את הקוד בקטע Sample Code (קוד לדוגמה).

אפשר לחזור למסך של פרטי המודל באמצעות לחיצה כפולה על TensorFlow מודל Lite בספרייה ml ב-Android Studio. מידע נוסף על באמצעות התכונה Modle Binding ב-Android Studio, כדאי לעיין ב-Android Studio השקה הערות. לסקירה כללית של השימוש בקישור בין מודלים ב-Android Studio, ראו את הקוד לדוגמה הוראות להגדרה.

כלים לפיתוח בעזרת C ו-C++

ספריות C ו-C++ של LiteRT מיועדות בעיקר עבור מפתחים שמשתמשים ב-Android Native Development Kit (NDK) כדי לבנות את האפליקציות שלהם. אם אתם יוצרים את האפליקציה שלכם באמצעות ה-NDK, יש שתי דרכים להשתמש ב-LiteRT באמצעות C++:

API של LiteRT C

השימוש ב-API הזה הוא הגישה המומלצת למפתחים שמשתמשים ב-NDK. מורידים את LiteRT AAR שמתארח בכתובת MavenCentral , משנים את השם ל-tensorflow-lite-*.zip ומחלצים את תוכן הדחיסה. עליך לכלול את ארבע קובצי כותרות ב-headers/tensorflow/lite/ וב-headers/tensorflow/lite/c/ ואת הספרייה הדינמית libtensorflowlite_jni.so הרלוונטית תיקייה אחת (jni/) בפרויקט NDK שלך.

קובץ הכותרת c_api.h מכיל תיעוד בסיסי לגבי השימוש ב-LiteRT C API.

API של LiteRT C++

אם תרצו להשתמש ב-LiteRT באמצעות C++ API, תוכלו ליצור את ה-C++ המשותף ספריות:

32bit Armeabi-v7a:

bazel build -c opt --config=android_arm //tensorflow/lite:libtensorflowlite.so

64bit arm64-v8a:

bazel build -c opt --config=android_arm64 //tensorflow/lite:libtensorflowlite.so

נכון לעכשיו, אין דרך פשוטה לחלץ את כל קובצי הכותרות הדרושים. לכן צריך לכלול את כל קובצי הכותרות ב-tensorflow/lite/ מ-TensorFlow של מאגר הנתונים. בנוסף, יש צורך בקובצי כותרת מ- FlatBuffers Abseil.