TensorFlow

TensorFlow Lite 사용법 총정리! (C/C++, Java, Python, Android)

kim선달 2020. 4. 5. 13:53
Select Language

TensorFlow Lite 사용법 총정리! (C/C++, Java, Python, Android)



목차
0. 글을 쓰게 된 계기
1. TensorFlow Lite 가 뭔가요?
2. 기존 모델을 TensorFlow Lite 모델로 변환하기
3. TensorFlow Lite를 빌드해보자
4. TensorFlow Lite 사용법 총망라
4-1. C / C++
4-2. Python
4-3. Android




0. 글을 쓰게 된 계기
TensorFlow Lite를 Android에서 사용하는 법을 찾고 있었는데, 공식 문서의 부정확함 & 버그 & 영어로 구글링해도 잘 안나옴 등등으로 삽질을 한 3~4주간 했는데, 이에 다른 분들께 도움이 될까봐 이 문서를 남깁니다. 
저도 엄청 전문가는 아니라서, 제가 겪어본 위주로 작성하였습니다.
궁금한점이 있으시면 언제든지 댓글을 달아주세요.


1. TensorFlow Lite가 뭔가요?

※ 홈페이지보다 GitHub이 더 정확합니다. 홈페이지는 deprecated된 함수들을 예시로 널어놓는 경우가 많고, GitHub 이 document가 더 자세히 설명되어 있습니다.


TensorFlow Lite는 TensorFlow의 모바일 & IoT 기기용 버전입니다. 학습이 아닌 추론을 하는게 목적이며, 기존 모델보다 이식성이 높고 크기가 줄어들기 때문에 PC가 아닌 환경에서 보다 유용하게 쓸수 있게 만든 버전입니다. 
현재 Python / C / C++ / Java / Objective-C 모두 지원되며, 우선 사용하기에 앞서 기존의 학습된 모델을 TensorFlow Lite 모델로 변환하고 사용해야 합니다.

제가 아이폰이 없기 때문에 Objective-C는 해보질 못했으나, document나 제 블로그의 C로 빌드 및 사용 하는법을 읽어 보시면 도움이 될것 같습니다.

2. 기존 모델을 TensorFlow Lite 모델로 변환하기

TensorFlow Lite로 모델 변환하기 (Python): https://cppmagister.tistory.com/5



3. TensorFlow Lite를 빌드해보자
TensorFlow Lite 빌드하기: https://cppmagister.tistory.com/6
* Python 이나 Android(Java) 는 빌드 안해도 됩니다.


4. TensorFlow Lite 사용법 총망라
4-1. C / C++
환경 구축하기(CMake): https://cppmagister.tistory.com/10
4-2. Python
4-3. Android(Java)