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