본문 바로가기
코틀린/에러모음

[Android/Kotlin] Tensorflow error : Cannot access class 'org.tensorflow.lite.gpu.GpuDelegateFactory.Options 해결법

by DevVerseMD 2025. 5. 1.
반응형

 

 

TensorFlow Lite에서 GPU를 사용하려다 다음과 같은 오류를 겪으셨다면 이 글이 도움이 될 것입니다:

Cannot access class 'org.tensorflow.lite.gpu.GpuDelegateFactory.Options'. Check your module classpath for missing or conflicting dependencies

🔍 문제 원인

이 오류는 GpuDelegate를 생성할 때 내부적으로 사용되는 GpuDelegateFactory.Options 클래스가 프로젝트에 포함되지 않았을 때 발생합니다. 대부분의 경우, TensorFlow GPU 관련 라이브러리가 누락되었거나 잘못된 버전을 사용한 경우입니다.


✅ 해결 방법

아래와 같이 정확한 TensorFlow Lite GPU 의존성build.gradle.kts에 추가하세요:

implementation("org.tensorflow:tensorflow-lite:2.17.0")
implementation("org.tensorflow:tensorflow-lite-support:0.5.0")
implementation("org.tensorflow:tensorflow-lite-metadata:0.5.0")
implementation("org.tensorflow:tensorflow-lite-gpu:2.17.0")
implementation("org.tensorflow:tensorflow-lite-gpu-api:2.17.0")

🧪 적용 예제

아래는 CompatibilityList를 사용하여 GPU delegate를 안전하게 적용하는 Kotlin 예제입니다:

import org.tensorflow.lite.Interpreter
import org.tensorflow.lite.gpu.CompatibilityList
import org.tensorflow.lite.gpu.GpuDelegate

val compatList = CompatibilityList()

val options = Interpreter.Options().apply {
    if (compatList.isDelegateSupportedOnThisDevice) {
        val delegateOptions = compatList.bestOptionsForThisDevice
        addDelegate(GpuDelegate(delegateOptions))
    } else {
        setNumThreads(4) // CPU fallback
    }
}

val interpreter = Interpreter(model, options)
interpreter.run(input, output)

📌 마무리

이 오류는 TensorFlow Lite를 GPU 환경에서 실행할 때 자주 발생합니다. 정확한 버전의 의존성과 CompatibilityList 기반 처리를 통해 안정적으로 해결할 수 있습니다.

java.lang.NoClassDefFoundError: Failed resolution of: Lorg/tensorflow/lite/gpu/GpuDelegateFactory$Options 는 위 예제를 참고하시면 해결할수있을거에요 ^^



반응형

'코틀린 > 에러모음' 카테고리의 다른 글

[Android/Kotlin] OpenCV MatAt.kt IR 오류 해결 방법  (1) 2025.04.23