우노
[ML] Tensorflow 모델을 TFLite 로 변환하는 방법 본문
들어가기 앞서,
- 양자화(quantization)는 float32 로 학습된 weight 값들을 float16, int8 등의 형태로 변환하는 작업을 의미합니다.
- 이 작업을 하게되면, .tflite 의 파일크기가 대략 4분의 1정도로 줄어들게 되지만,
- 세밀한 데이터값을 버리는 작업이므로, model 의 정확도를 잃을 수 있는 작업이 됩니다.
- 결과적으로 양자화는, model 의 사이즈를 줄임으로써, 정확도는 떨어지지만 빠른 추론 시간을 얻게 되는 작업이라고 볼 수 있습니다.
TFLite 변환 시, FP16 양자화 적용 예제
파일로 저장되어 있는 모델을 load 한 뒤, TFLite 모델로 변환
import tensorflow as tf # 파일로 저장되어 있는 모델을 load 한 뒤, TFLite 모델로 변환 converter = tf.lite.TFLiteConverter.from_saved_model('모델파일위치') # FP16 양자화 설정 converter.target_spec.supported_types = [tf.float16] converter.optimizations = [tf.lite.Optimize.DEFAULT] # 모델 양자화 tflite_model = converter.convert() # 변환된 모델을 .tflite 파일에 저장 open("변환모델저장명.tflite", "wb").write(tflite_model)
변수로 저장되어 있는 모델을, TFLite 모델로 변환
import tensorflow as tf # 변수로 저장되어 있는 모델을, TFLite 모델로 변환 converter = tf.lite.TFLiteConverter.from_keras_model(모델변수) # FP16 양자화 설정 converter.target_spec.supported_types = [tf.float16] converter.optimizations = [tf.lite.Optimize.DEFAULT] # 모델 양자화 tflite_model = converter.convert() # 변환된 모델을 .tflite 파일에 저장 open("변환모델저장명.tflite", "wb").write(tflite_model)
참고
'AI > Machine Learning' 카테고리의 다른 글
[ML] 오프라인 학습과 온라인 학습이란? (0) | 2022.03.30 |
---|---|
[ML] PCA 와 ICA 란? (0) | 2021.12.01 |
[ML] 평균 제곱 오차, 교차 엔트로피 오차, 로그우도 계산 방법 (0) | 2021.11.30 |
[ML] Binary Cross Entropy 와 Cross Entropy 의 차이 (0) | 2021.11.30 |
[ML] 비지도 학습 ML 모델 종류 (0) | 2021.11.20 |
Comments