[Keras & Tensorflow & Android] Keras Model을 Android에 넣기
Keras Model을 Android에 넣기
여기에 적다시피 이렇게 하면 Android에 넣을 수 있다.
사진에서 Keras란 Python 언어로 만들어진 Tensorflow위에 얹어서 사용하는 library라고 한다.
그래서 .h5를 .pb로, .pb를 .tflite로 변환해 android app에 탑재한다.
- 모델 포맷
- .ckpt: 모델의 변수(가중치)인 체크포인트 파일(tensorflow)
- .pb: 모델의 변수(가중치) + 모델 구조(전체 graph)로 이루어진 binary 파일(tensorflow)
- .pbtxt: pb파일을 읽을 수 있는 text 파일, 모델 구조 파악 가능(tensorflow)
- .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