LiteRT CompiledModel Kotlin API

CompiledModel API ของ LiteRT พร้อมใช้งานใน Kotlin ซึ่งมอบประสบการณ์การใช้งานที่ราบรื่นและเน้นตัวเร่งเป็นอันดับแรกด้วย API ระดับสูงสำหรับนักพัฒนาแอป Android ดูตัวอย่างได้ที่แอป Kotlin สำหรับการแบ่งกลุ่มรูปภาพ

คำแนะนำต่อไปนี้แสดงการอนุมาน CPU พื้นฐานของ CompiledModel Kotlin API ดูคำแนะนำเกี่ยวกับการเร่งด้วย GPU และการเร่งด้วย NPU สำหรับ ฟีเจอร์การเร่งขั้นสูง

เพิ่มแพ็กเกจ Maven

เพิ่มแพ็กเกจ Maven ของ LiteRT ลงในโปรเจ็กต์ 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()

หากใช้หน่วยความจำ CPU ให้ป้อนข้อมูลโดยเขียนข้อมูลลงใน บัฟเฟอร์อินพุตแรกโดยตรง

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

เรียกใช้โมเดล

ระบุบัฟเฟอร์อินพุตและเอาต์พุต แล้วเรียกใช้โมเดล

model.run(inputBuffers, outputBuffers)

เรียกข้อมูลเอาต์พุต

ดึงข้อมูลผลลัพธ์โดยการอ่านเอาต์พุตของโมเดลจากหน่วยความจำโดยตรง

val outputFloatArray = outputBuffers[0].readFloat()

ใช้ TensorBuffer

LiteRT มีการรองรับความสามารถในการทำงานร่วมกันของบัฟเฟอร์ I/O ในตัว โดยใช้ Tensor Buffer API (TensorBuffer) เพื่อจัดการการไหลของข้อมูลเข้าและออกจาก CompiledModel Tensor Buffer API ช่วยให้เขียน (Write<T>()) อ่าน (Read<T>()) และล็อกบัฟเฟอร์ได้

ดูมุมมองที่สมบูรณ์ยิ่งขึ้นเกี่ยวกับวิธีติดตั้งใช้งาน Tensor Buffer API ได้ที่ซอร์สโค้ดใน TensorBuffer.kt