LiteRT Next API는 LiteRT API와 호환되지 않으므로 LiteRT를 사용하는 애플리케이션은 새 API에서 제공하는 기능을 사용하려면 LiteRT Next로 완전히 이전해야 합니다. 애플리케이션은 TF Lite 인터프리터 API와 컴파일된 모델 API를 상호 교환하여 사용할 수 없습니다.
LiteRT Next는 Kotlin 및 C++용 API를 제공합니다. 다른 언어로 LiteRT SDK를 사용하는 애플리케이션은 계속 LiteRT를 사용해야 합니다.
Android 종속 항목
LiteRT를 사용하여 Android 애플리케이션을 이전하려면 종속 항목을 com.google.ai.edge.litert
에서 com.google.ai.edge.litert:litert:2.0.0-alpha
로 바꿉니다.
LiteRT를 사용하면 GPU 가속기를 별도의 라이브러리 (com.google.ai.edge.litert:litert-gpu
)에서 대리자로 사용할 수 있습니다. LiteRT Next를 사용하면 GPU 가속기가 LiteRT Next 패키지에 포함됩니다. 자세한 내용은 LiteRT Next를 사용한 GPU를 참고하세요.
build.gradle
종속 항목에 LiteRT Next 패키지를 추가할 수 있습니다.
dependencies {
...
implementation `com.google.ai.edge.litert:litert:2.0.0-alpha`
}
코드 변경
LiteRT를 사용하는 애플리케이션은 컴파일된 모델 API를 사용하는 코드 대신 TFLite 인터프리터 API를 사용하는 코드를 대체해야 합니다. 다음은 LiteRT Next로 이전하는 데 필요한 주요 변경사항을 보여줍니다. 자세한 내용은 LiteRT Next API 참조를 참고하세요.
C++의 코드 변경사항
C++를 사용하여 애플리케이션을 이전하려면 다음 주요 스니펫을 대체하세요.
LiteRT (TFLite 인터프리터) | LiteRT Next (CompiledModel ) |
|
---|---|---|
모델 로드 | FlatBufferModel::BuildFromFile() InterpreterBuilder(...) |
Model::CreateFromFile("mymodel.tflite") 참고: 별도의 빌더 단계 없음 |
런타임 초기화 | builder(&interpreter), interpreter->AllocateTensors() |
CompiledModel::Create(env, model, kLiteRtHwAcceleratorCpu) 참고: 수동 메모리 할당 단계 없음 |
가속기 사용 | interpreter->ModifyGraphWithDelegate(...) |
CompiledModel::Create(env, model, kLiteRtHwAcceleratorGpu) |
모델 실행 | interpreter->Invoke() |
compiled_model->Run(inputs, outputs) |
Kotlin의 코드 변경사항
Kotlin을 사용하여 애플리케이션을 이전하려면 다음 주요 단계를 따르세요.
모델 및 런타임 설정
LiteRT를 사용하면 다음과 같은 여러 단계로 모델을 로드하고, 가속을 설정하고, 런타임을 초기화할 수 있습니다.
// Load the model
val modelBuffer: MappedByteBuffer =
FileUtil.loadMappedFile(appContext, "model.tflite")
// Initialize runtime
val options = Interpreter.Options()
val interpreter = Interpreter(modelBuffer, options)
interpreter.allocateTensors()
// Use accelerators
aval gpuDelegate = GpuDelegate()
options.addDelegate(gpuDelegate)
LiteRT Next를 사용하면 모델을 로드하고 가속을 지정하고 런타임을 동시에 초기화할 수 있습니다.
val model =
CompiledModel.create(
context.assets,
"model.tflite",
CompiledModel.Options(Accelerator.GPU)
)
추론 실행
LiteRT로 모델을 실행하려면 다음 단계를 따르세요.
val input = FloatBuffer.allocate(data_size)
val output = FloatBuffer.allocate(data_size)
interpreter.run(input, output)
LiteRT Next로 모델을 실행하려면 다음 단계를 따르세요.
val inputBuffers = model.createInputBuffers()
val outputBuffers = model.createOutputBuffers()
model.run(inputBuffers, outputBuffers)
다른 도서관
LiteRT Next API는 Kotlin 및 C++에서만 사용할 수 있습니다. 다른 언어로 LiteRT SDK를 사용하는 애플리케이션은 LiteRT Next로 이전할 수 없습니다.
Play 서비스 런타임에서 LiteRT를 사용하는 애플리케이션은 LiteRT Next로 이전할 수 없으며 play-services-tflite
런타임을 계속 사용해야 합니다. Task Library 및 Model Maker 라이브러리는 LiteRT Next로 이전할 수 없으며 TensorFlow Lite API를 계속 사용해야 합니다.