Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Cuantización posterior al entrenamiento

La cuantificación posterior al entrenamiento incluye técnicas generales para reducir la latencia, el procesamiento, la potencia y el tamaño del modelo de la CPU y del acelerador de hardware, con poca degradación en la precisión del modelo. Estas técnicas se pueden realizar en un modelo de TensorFlow flotante ya entrenado y se pueden aplicar durante la conversión de TensorFlow Lite. Estas técnicas están habilitadas como opciones en el convertidor de TensorFlow Lite .

Para pasar directamente a los ejemplos de un extremo a otro, consulte los siguientes tutoriales:

Cuantizar pesos

Los pesos se pueden convertir a tipos con precisión reducida, como flotantes de 16 bits o enteros de 8 bits. Por lo general, recomendamos flotantes de 16 bits para la aceleración de la GPU y un entero de 8 bits para la ejecución de la CPU.

Por ejemplo, aquí se explica cómo especificar la cuantificación de peso de entero de 8 bits:

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()

En la inferencia, las partes más críticamente intensivas se calculan con 8 bits en lugar de punto flotante. Hay algunos gastos generales de rendimiento en el tiempo de inferencia, en relación con la cuantificación de los pesos y las activaciones a continuación.

Para obtener más información, consulte la guía de cuantificación posterior al entrenamiento de TensorFlow Lite.

Cuantización completa de pesos y activaciones

Mejore la latencia, el procesamiento y el uso de energía, y obtenga acceso a aceleradores de hardware de solo enteros asegurándose de que tanto los pesos como las activaciones estén cuantificados. Esto requiere un pequeño conjunto de datos representativos.

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()

El modelo resultante seguirá teniendo entrada y salida flotante por conveniencia.

Para obtener más información, consulte la guía de cuantificación posterior al entrenamiento de TensorFlow Lite.