이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

훈련 후 양자화

훈련 후 양자화에는 모델 정확도 저하없이 CPU 및 하드웨어 가속기 대기 시간, 처리, 전력 및 모델 크기를 줄이는 일반적인 기술이 포함됩니다. 이러한 기술은 이미 훈련 된 float TensorFlow 모델에서 수행 할 수 있으며 TensorFlow Lite 변환 중에 적용 할 수 있습니다. 이러한 기술은 TensorFlow Lite 변환기의 옵션으로 활성화됩니다.

종단 간 예제로 바로 이동하려면 다음 자습서를 참조하십시오.

가중치 양자화

가중치는 16 비트 부동 소수점 또는 8 비트 정수와 같이 정밀도가 낮은 유형으로 변환 할 수 있습니다. 일반적으로 GPU 가속에는 16 비트 부동, CPU 실행에는 8 비트 정수를 권장합니다.

예를 들어, 다음은 8 비트 정수 가중치 양자화를 지정하는 방법입니다.

import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.OPTIMIZE_FOR_SIZE]
tflite_quant_model = converter.convert()

추론에서 가장 중요한 부분은 부동 소수점 대신 8 비트로 계산됩니다. 아래의 가중치와 활성화를 양자화하는 것과 관련된 추론 시간 성능 오버 헤드가 있습니다.

자세한 내용은 TensorFlow Lite 학습 후 양자화 가이드를 참조하세요.

가중치 및 활성화의 완전한 정수 양자화

지연 시간, 처리 및 전력 사용량을 개선하고 가중치와 활성화가 모두 양자화되었는지 확인하여 정수 전용 하드웨어 가속기에 액세스 할 수 있습니다. 이를 위해서는 작은 대표 데이터 세트가 필요합니다.

import tensorflow as tf

def representative_dataset_gen():
  for _ in range(num_calibration_steps):
    # Get sample input data as a numpy array in a method of your choosing.
    yield [input]

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset_gen
tflite_quant_model = converter.convert()

결과 모델은 편의를 위해 여전히 float 입력 및 출력을 사용합니다.

자세한 내용은 TensorFlow Lite 학습 후 양자화 가이드를 참조하세요.