AI/Deep Learning
[DL] TFLite 와 TensorRT 간단 비교
운호(Noah)
2022. 1. 12. 14:25
TensorFlow Lite(TFLite) 란?
TensorFlow Lite(TFLite)는 구글에서 개발한, TensorFlow(keras) 모델 최적화 라이브러리입니다.
- TensorFlow(keras) 모델만 최적화할 수 있습니다.
TFLite 는 TFLite Converter 와 TFLite Interpreter 로 구성되어있습니다.
- TFLite Converter
- TensorFlow 모델을, Interpreter가 사용할 수 있도록 최적화하는 역할입니다.
- 효율적이고, 용량이 적으며, 성능은 유지하도록
- TensorFlow 모델을, Interpreter가 사용할 수 있도록 최적화하는 역할입니다.
- TFLite Interpreter
- 최적화된 모델을 다양한 하드웨어에서 돌아갈 수 있도록 도와주는 역할입니다.
- 모바일 폰, 임베디드 리눅스 디바이스, 마이크로 컨트롤러 등...
- 최적화된 모델을 다양한 하드웨어에서 돌아갈 수 있도록 도와주는 역할입니다.
- TFLite Converter
따라서, TFLite 는 아래 순서와 같이 동작하게 됩니다.
- TensorFlow 모델을 훈련시킵니다.
- TFLite Converter 를 사용해, 훈련된 모델을 최적화한 뒤, TFLite format(.tflite) 으로 변환합니다.
- TFLite Interpreter 를 통해, 다른 기기에서 TFLite 모델을 사용할 수 있게 됩니다.
TensorRT 란?
TensorRT 는 NVIDIA 에서 개발한, 딥러닝 인퍼런싱 최적화 라이브러리입니다.
- 즉, 다양한 프레임워크에서 학습된 딥러닝 모델을, 구조적으로 최적화하여,
- NVIDIA GPU 상에서 추론하는 속도를 향상시켜주는 역할을 합니다.
TensorRT 는 Optimizer 와 Runtime 으로 구성되어있습니다.
- Optimizer
- NVIDIA GPU 연산에 적합한 최적화 기법들을 사용해, 훈련된 딥러닝 모델을 최적화하는 역할입니다.
- 다양한 프레임워크를 지원합니다.
- NVIDIA GPU 연산에 적합한 최적화 기법들을 사용해, 훈련된 딥러닝 모델을 최적화하는 역할입니다.
- Runtime
- 배포할 NVIDIA GPU 에 따라, 최적의 연산을 수행할 수 있도록 도와주는 역할입니다.
- Optimizer
따라서, TensorRT 는 아래 순서와 같이 동작하게 됩니다.
- 딥러닝 모델을 훈련시킵니다.
- TensorRT Optimizer 를 사용해, 훈련된 모델을 최적화합니다.
- TensorRT Runtime Engine 을 통해, 배포할 NVIDIA GPU 에 따른 최적의 연산으로 구동시킵니다.
TFLite 와 TensorRT 의 차이?
- TFLite
- TensorFlow(Keras)의 모델만 최적화가 가능합니다.
- 여러 하드웨어에서 추론이 가능합니다.
- 타겟 하드웨어에 따른 추가적인 최적화는 없습니다.
- TensorRT
- 다양한 프레임워크의 모델 최적화가 가능합니다.
- Pytorch, TensorFlow, etc..
- NVIDIA GPU 만 추론 하드웨어로 사용 가능합니다.
- 예를 들어, RPI 에서는 GPU 가 없으므로 사용할 수 없습니다.
- 추론에 사용하려는 NVIDIA GPU 종류에 따라 추가적으로 최적화할 수 있습니다.
- 다양한 프레임워크의 모델 최적화가 가능합니다.
참고
- TFLite
- TensorRT