728x90
반응형

 

 

TensorFlow Lite 개념

 

TensorFlow Lite는 모바일과 IoT 기기에 딥러닝 모델을 배포하고 추론하기 위해 구글에서 만든 라이브러리이다. 간단히 말하자면, TFLite를 이용하여 TensorFlow 모델을 안드로이드, iOS, 임베디드 기기에서 사용할 수 있도록 모델을 변환할 수 있다. 이러한 기기에서 사용하기 위해서는 컴퓨팅 리소스가 제한적이기 때문에 이를 위해 TFLite는 모델을 경량화해준다고 보면 된다. 

 

TFLite는 모델을 변환하는 Converter와 변환된 모델을 실제로 동작시키는 Interpreter로 이루어져있다. Converter는 파이썬 개발환경에서 사용하고, Interpreter는 사용하려는 기기와 동일한 환경에서 사용된다. 그리고 중요한 특징 중 하나는 양자화를 지원한다. Float16, int, 동적 범위 양자화 등 다양한 옵션을 제공한다고 한다. 

 

 

TensorFlow와 다른 점은 TensorFlow는 주로 Python을 사용하지만, TFLite는 Python과 기기별 지원하는 언어를 모두 사용해야한다. 예를 들면 안드로이드는 자바나 코틀린을 사용하고, iOS는 Objective-C나 swift를 사용한다고 한다. 그리고 TensorFlow에서는 여러 연산자들을 제공하고 있지만, TFLite는 일반적으로 널리 사용하는 연산자만을 지원한다. (이게 아주 제약적이다.) 그래서 변환이 안되는 모델이 있을 수 있으며, 모델 전체가 변환 안되는게아니라 특정 레이어 때문에 안될 수 있다. 또한 지원하는 연산자 중에서 일부는 성능 문제로 인하여 특정 패턴만을 사용하도록 제한한다고 한다. 

 

아래는 TensorFlow 및 TFLite의 연산자 범위를 나타낸다. 참고로 사용자 연산자(Custom Operators)를 변환할 경우, 내장 TensorFlow Lite 라이브러리의 외부에서 불일치를 유발하여 전체적인 모델의 크기를 증가시킬 수 있고, 기기가 제한된 리소스에 배포되는 경우 서버 환경보다 성능이 더욱 좋지 않은 결과를 초래할 수 있다고 한다. 

 

지원되는 연산자는 아래 링크에서 확인할 수 있다. 

https://www.tensorflow.org/lite/guide/op_select_allowlist?hl=ko 

 

지원되는 Select TensorFlow 연산자  |  TensorFlow Lite

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trade

www.tensorflow.org

 

 

 

 

 

 

 

 

참고자료 1 : 한빛미디어, 텐서플로 라이트를 활용한 안드로이드 딥러닝 

참고자료 2 : https://www.tensorflow.org/lite/guide?hl=ko 

 

TensorFlow Lite

KerasCV, 온디바이스 ML 등을 사용한 확산 모델을 다루는 WiML 심포지엄의 세션을 확인하세요. 주문형 시청 TensorFlow Lite 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류

www.tensorflow.org

 

728x90
반응형