API LiteRT CompiledModel có trong Kotlin, mang đến cho nhà phát triển Android trải nghiệm liền mạch, ưu tiên bộ tăng tốc với các API cấp cao. Để xem ví dụ, hãy xem Ứng dụng phân đoạn hình ảnh bằng Kotlin.
Hướng dẫn sau đây trình bày suy luận cơ bản về CPU của API Kotlin CompiledModel. Hãy xem hướng dẫn về tính năng tăng tốc GPU và tính năng tăng tốc NPU để biết các tính năng tăng tốc nâng cao.
Thêm gói Maven
Thêm gói LiteRT Maven vào dự án Android của bạn:
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.1.0`
}
Suy luận cơ bản
Tạo CompiledModel
Khởi động thời gian chạy bằng một mô hình và lựa chọn tăng tốc phần cứng của bạn:
val model =
CompiledModel.create(
context.assets,
"mymodel.tflite",
CompiledModel.Options(Accelerator.CPU),
env,
)
Tạo vùng đệm đầu vào và đầu ra
Tạo các cấu trúc dữ liệu (vùng đệm) cần thiết để lưu trữ dữ liệu đầu vào mà bạn sẽ đưa vào mô hình để suy luận và dữ liệu đầu ra mà mô hình tạo ra sau khi chạy suy luận.
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
Nếu bạn đang sử dụng bộ nhớ CPU, hãy điền dữ liệu đầu vào bằng cách ghi dữ liệu trực tiếp vào vùng đệm đầu vào đầu tiên.
inputBuffers[0].writeFloat(FloatArray(data_size) { data_value /* your data */ })
Gọi mô hình
Cung cấp vùng đệm đầu vào và đầu ra, chạy mô hình.
model.run(inputBuffers, outputBuffers)
Truy xuất dữ liệu đầu ra
Truy xuất đầu ra bằng cách đọc trực tiếp đầu ra của mô hình từ bộ nhớ.
val outputFloatArray = outputBuffers[0].readFloat()
Sử dụng TensorBuffer
LiteRT cung cấp khả năng hỗ trợ tích hợp cho khả năng tương tác của bộ đệm I/O, sử dụng Tensor Buffer API (TensorBuffer) để xử lý luồng dữ liệu vào và ra khỏi CompiledModel. Tensor Buffer API cung cấp khả năng ghi (Write<T>()) và đọc (Read<T>()), cũng như khoá các vùng đệm.
Để biết thông tin đầy đủ hơn về cách triển khai Tensor Buffer API, hãy xem mã nguồn tại TensorBuffer.kt.