IT Convergence Engineering/AI 버섯 어플

[Keras & Tensorflow & Android] Keras Model을 Android에 넣기

Soo_buglosschestnut 2020. 8. 29. 23:55

Keras Model을 Android에 넣기


bugloss-chestnut.tistory.com/entry/Android-h5-pb-tflite%EB%A1%9C-%EB%B3%80%ED%99%98-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C%EC%97%90-%EC%A0%81%EC%9A%A9

 

[Tensorflow & Android] .h5 -> .pb -> .tflite로 변환 & 안드로이드에 적용(python & java)

.h5 -> .pb -> .tflite로 변환 & 안드로이드에 적용(python & java) 1. .h5 -> .pb -> .tflite로 변환 .h5 파일 -> .pb 파일로 변환하기 (코드) from tensorflow import keras model = keras.models.load_model(..

bugloss-chestnut.tistory.com

 

여기에 적다시피 이렇게 하면 Android에 넣을 수 있다.

 

 

사진에서 Keras란 Python 언어로 만들어진 Tensorflow위에 얹어서 사용하는 library라고 한다.

 

그래서 .h5를 .pb로, .pb를 .tflite로 변환해 android app에 탑재한다.

 

  • 모델 포맷
  1. .ckpt: 모델의 변수(가중치)인 체크포인트 파일(tensorflow)
  2.  .pb: 모델의 변수(가중치) + 모델 구조(전체 graph)로 이루어진 binary 파일(tensorflow)
  3.  .pbtxt: pb파일을 읽을 수 있는 text 파일, 모델 구조 파악 가능(tensorflow)
  4.  .h5: Keras에서 모델 및 가중치 모두 가지고 있는 HDF형식 파일

  • ckpt

모델에 대한 메타 정보를 가지고 있어 재학습 가능, 모델 구조를 제외한 모델의 가중치만 담은 파일

but predict를 할 때 필요한 정보 외에도 담겨 있어 파일의 크기가 무겁다.

 

.ckpt.data: 모델(graph)을 제외한 모든 변수를 포함한 파일(.ckpt와 동일), model 복원시 meta파일과 data파일을 이용

 

.ckpt.index: meta파일과 data파일을 mapping하기 위해 내부적으로 필요한 index 파일

 

.ckpt.meta: 모델(graph)만 있는 파일, 변수를 제외한 그래프의 구조를 담은 파일


  • .pb

모델(graph)와 가중치(weight) 모두 저장된 파일, 재학습 불가능

 


  • .pbtxt

.pb는 binary 파일이고, .pbtxt는 text 파일, so .pb파일이 더 가벼우나, .pbtxt는 사람이 읽을 수 있다.

 


  • .h5

Hierarchical Data Format(HDF)형식으로 저장되는 data. keras에서 모델 및 가중치를 모두 가지고 있으며, keras.models.load_model()을 통해서 불러와 사용이 가능하다.


출처: medium.com/@margaretmz/e2e-tfkeras-tflite-android-273acde6588

 

E2E tf.Keras to TFLite to Android

Deep Learning for Android with TensorFlow

medium.com

ebbnflow.tistory.com/169

 

[Android + Keras] 케라스 모델을 안드로이드에서 사용하려면(Tensorflow Mobile,Lite)

케라스나 파이토치에서 만든 AI모델을 CoreML(ios), Tensorflow mobile or lite(android)를 통해 적용할 수 있다. Tensorflow Mobile 구글이 제공하는 머신러닝 프레임워크, .pb파일 이용 Feedforward, convoluti..

ebbnflow.tistory.com