Quantization [3]

eric9687·2022년 3월 1일
0

Edge Computing시, 즉 딥러닝 모델을 디바이스(IOT, 임베디드 디바이스)에 적용(경량화,최적화)할때의 quantization 라이브러리에는 대표적으로 TensorRT, TFlite가 있다.

TFLite vs TensorRT

TFLiteTensorRT
개발GoogleNVIDIA
지원 FrameworkTensorflow다양
구성 클래스Converter, InterpreterOptimizer, Runtime Engine
지원 추론 Hardware다양NVIDIA GPU - 종류에 따른 추가 최적화 가능

TFLite

  • Converter
    : 성능은 유지하면서, Interpreter가 사용할 수 있도록 최적화.
    Tensorflow나 Keras로 생성한 모델을 TFLite 모델 파일로 변환.
    • pb파일은 protocol buffers를 통해 모델이 된다면, TFLite파일은 protocol buffers보다 작고 가벼운 flatbuffer로 모델을 저장한다.
  • Interpreter
    : 모델을 메모리에 올리고, 모델에 알맞는 Input 데이터 형식을 바꾸고, Inferece하고, Output을 device에 맞게 만드는 역할 수행
  • 성능은 최대한 유지하고, 추론 속도 향상(1/6)
    • Smaller storage : 모델 사이즈 축소 - device에 적은 storage
    • Less memory usage : 적은 RAM memory occupy
    • Reducing Latency

TensorRT

  • Optimizer
    : NVIDIA GPU 연산에 적합한 최적화
    • (Keras, Tensorflow) pb파일의 모델을 freeze하거나 uff parser를 통해 TensorRT엔진 생성
    • (Pytorch) pytorch모델을 onnx모델로 변환하고 TensorRT로 변환.
  • Runtime Engine
  • 5-10배의 속도 향상.
profile
그러나 먼저 된 자로서 나중되고 나중 된 자로서 먼저될 자가 많으니라(마:19:30)

0개의 댓글