텐서플로를 텐서플로 라이트로, 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 함수를 변환합니다.
공식 문서에서는 첫 번째 방식을 권장한다.
Tensorflow 모델을 TFLite로 변환하기 위한 코드는 다음과 같다.
import tensorflow as tf
# tensorflow 모델 저장 경로
saved_model_dir = "./tensorflow/best_res18"
# Convert the model
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir) # path to the SavedModel directory
tflite_model = converter.convert()
# Save the model.
with open('model.tflite', 'wb') as f:
f.write(tflite_model)
텐서플로 모델인 tensorflow/best_res18 을 읽어 와서 TFLite 모델인 model.tflite로 변환해 준다.
TFLite 모델을 inference 하여 모델 output을 얻기 위한 코드를 아래 링크를 참고하면 된다.
https://hsyaloe.tistory.com/48
'안드로이드' 카테고리의 다른 글
[안드로이드/코틀린] Bitmap 이미지 저장하기 (0) | 2023.03.15 |
---|---|
[안드로이드/코틀린] asset 에서 이미지 Bitmap으로 읽기 (0) | 2023.03.15 |
[안드로이드/TFLite] TF Lite delegate (0) | 2023.03.09 |
[안드로이드/TF Lite] input/output shape 확인 법 (0) | 2023.02.28 |
[안드로이드] 코틀린으로 바인딩 시 "Unresolved reference" 에러 해결법 (0) | 2023.02.23 |