LiteRT CompiledModel Kotlin API

ממשק ה-API של LiteRT CompiledModel זמין ב-Kotlin, ומציע למפתחי Android חוויה חלקה שמתמקדת בהאצה באמצעות ממשקי API ברמה גבוהה. לדוגמה, אפשר לעיין באפליקציית Kotlin לפילוח תמונות.

במדריך הבא מוצגת מסקנת CPU בסיסית של Kotlin API‏ CompiledModel. במדריך בנושא האצת GPU והאצת NPU מוסבר על תכונות מתקדמות של האצה.

הוספת חבילת Maven

מוסיפים את חבילת LiteRT Maven לפרויקט Android:

dependencies {
  ...
  implementation `com.google.ai.edge.litert:litert:2.1.0`
}

הסקה בסיסית

יצירה של CompiledModel

מאתחלים את סביבת זמן הריצה עם מודל ועם שיפור המהירות באמצעות חומרה לפי בחירתכם:

val  model =
  CompiledModel.create(
    context.assets,
    "mymodel.tflite",
    CompiledModel.Options(Accelerator.CPU),
    env,
  )

יצירת מאגרי קלט ופלט

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

val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()

אם משתמשים בזיכרון של המעבד, ממלאים את נתוני הקלט על ידי כתיבת הנתונים ישירות במאגר הקלט הראשון.

inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })

הפעלת המודל

מספקים את מאגרי הקלט והפלט ומריצים את המודל.

model.run(inputBuffers, outputBuffers)

אחזור פלטים

אחזור פלטים על ידי קריאה ישירה של פלט המודל מהזיכרון.

val outputFloatArray = outputBuffers[0].readFloat()

שימוש ב-TensorBuffer

‫LiteRT מספק תמיכה מובנית ביכולת פעולה הדדית של מאגרים של קלט/פלט, באמצעות Tensor Buffer API ‏ (TensorBuffer) כדי לטפל בזרימת הנתונים אל CompiledModel וממנו. ‫Tensor Buffer API מאפשר לכתוב (Write<T>()) ולקרוא (Read<T>()) באפרים ולנעול אותם.

כדי לקבל תמונה מלאה יותר של אופן ההטמעה של Tensor Buffer API, אפשר לעיין בקוד המקור בכתובת TensorBuffer.kt.