본문 바로가기
  • AI 개발자가 될래요

안드로이드9

[Tensorflow/TFLite] Tensorflow 모델을 Tensorflow Lite로 바꾸는 법, tf2tflite 텐서플로를 텐서플로 라이트로, Tensorflow to Tensorflow Lite (TFLite) 딥러닝 모델을 안드로이드 앱에서 동작시키기 위해서 Tensorflow Lite(이하 TFLite)를 사용중이다. Tensorflow 2.x 를 설치한 경우 3가지 방식의 Converter를 사용할 수 있다. tf.lite.TFLiteConverter.from_saved_model()(권장): 저장된 모델을 변환합니다. tf.lite.TFLiteConverter.from_keras_model(): Keras 모델을 변환합니다. tf.lite.TFLiteConverter.from_concrete_functions(): concrete 함수를 변환합니다. 공식 문서에서는 첫 번째 방식을 권장한다. Tensorf.. 2023. 2. 28.
[안드로이드/TF Lite] input/output shape 확인 법 안드로이드에서 텐서플로 라이트로 딥러닝 모델을 올릴 때 입/출력 shape 확인법 텐서플로 라이트 모델을 사용하기 전에 해당 모델의 입/출력 형태가 어떠한지 확인할 필요가 있다. 1. 먼저 모델의 경로를 명시하고 TFLite interpreter에 할당해준다. # tflite model path TFLITE_PATH = './TFLite/best_res18.tflite' # tflite모델 로딩 및 텐서 할당 interpreter = tf.lite.Interpreter(model_path=TFLITE_PATH) interpreter.allocate_tensors() 2. 입출력 텐서를 가져와서 shape을 print한다. # 입출력 텐서 가져오기 input_details = interpreter.get_.. 2023. 2. 28.
[안드로이드] 코틀린으로 바인딩 시 "Unresolved reference" 에러 해결법 바인딩 시 "Unresolved reference" 에러 오늘은 코틀린으로 안드로이드 앱을 짤 때 자주 발생하는 바인딩 시 "Unresolved reference" 에러에 대해 알아보도록 한다. 코틀린은 "이론상으로" binding을 이용하여 xml 파일의 id를 바로 이용할 수 있다고 한다. 하지만 막상 해보면.. 이렇게 activity_main.xml에 새로운 id를 추가하여도 MainActivity.kt 에서 바인딩을 할 때 위와 같은 "Unresolved reference" 에러가 발생하는 경우가 있다. (사실은 많다.) 해결 방법 매우 간단한 해결 방법이 있다. build.gradle(app) 파일의 plugins 부분에 id 'kotlin-android-extensions' 을 추가 해주고 s.. 2023. 2. 23.