Aide à protéger la Grande barrière de corail avec tensorflow sur Kaggle Rejoignez Défi

Quantification post-formation

La quantification post-formation comprend des techniques générales pour réduire la latence, le traitement, la puissance et la taille du modèle du processeur et de l'accélérateur matériel avec une faible dégradation de la précision du modèle. Ces techniques peuvent être effectuées sur un modèle TensorFlow flottant déjà entraîné et appliquées lors de la conversion TensorFlow Lite. Ces techniques sont activées en tant qu'options dans le convertisseur TensorFlow Lite .

Pour accéder directement aux exemples de bout en bout, consultez les didacticiels suivants:

Quantification des poids

Les poids peuvent être convertis en types avec une précision réduite, tels que des flottants 16 bits ou des entiers 8 bits. Nous recommandons généralement des flottants 16 bits pour l'accélération GPU et un entier 8 bits pour l'exécution du processeur.

Par exemple, voici comment spécifier la quantification de poids d'entiers 8 bits:

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

En conclusion, les parties les plus intensives sont calculées avec 8 bits au lieu de virgule flottante. Il y a une surcharge de performance du temps d'inférence, par rapport à la quantification des pondérations et des activations ci-dessous.

Pour plus d'informations, consultez le guide de quantification post-entraînement TensorFlow Lite.

Quantification entière des poids et activations

Améliorez la latence, le traitement et la consommation d'énergie, et accédez à des accélérateurs matériels de nombres entiers uniquement en vous assurant que les pondérations et les activations sont quantifiées. Cela nécessite un petit ensemble de données représentatif.

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

Le modèle résultant prendra toujours des entrées et sorties flottantes pour plus de commodité.

Pour plus d'informations, consultez le guide de quantification post-entraînement TensorFlow Lite.