Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Quantisierung nach dem Training

Die Quantisierung nach dem Training umfasst allgemeine Techniken zur Reduzierung der Latenz, Verarbeitung, Leistung und Modellgröße von CPU- und Hardwarebeschleunigern bei geringer Verschlechterung der Modellgenauigkeit. Diese Techniken können an einem bereits trainierten Float-TensorFlow-Modell durchgeführt und während der TensorFlow Lite-Konvertierung angewendet werden. Diese Techniken sind im TensorFlow Lite-Konverter als Optionen aktiviert.

Informationen zu End-to-End-Beispielen finden Sie in den folgenden Tutorials:

Gewichte quantisieren

Gewichte können in Typen mit reduzierter Genauigkeit konvertiert werden, z. B. 16-Bit-Gleitkommazahlen oder 8-Bit-Ganzzahlen. Wir empfehlen im Allgemeinen 16-Bit-Floats für die GPU-Beschleunigung und 8-Bit-Ganzzahlen für die CPU-Ausführung.

Hier erfahren Sie beispielsweise, wie Sie eine 8-Bit-Quantisierung der Ganzzahlgewichtung angeben:

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

In der Schlussfolgerung werden die kritischsten Teile mit 8 Bit anstelle von Gleitkomma berechnet. Es gibt einen gewissen Overhead für die Inferenzzeitleistung im Vergleich zur Quantisierung sowohl der Gewichte als auch der Aktivierungen unten.

Weitere Informationen finden Sie im TensorFlow Lite -Quantisierungshandbuch nach dem Training .

Vollständige ganzzahlige Quantisierung von Gewichten und Aktivierungen

Verbessern Sie die Latenz, die Verarbeitung und den Stromverbrauch und erhalten Sie Zugriff auf Hardwarebeschleuniger nur für Ganzzahlen, indem Sie sicherstellen, dass sowohl Gewichte als auch Aktivierungen quantisiert werden. Dies erfordert einen kleinen repräsentativen Datensatz.

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

Das resultierende Modell übernimmt zur Vereinfachung weiterhin die Eingabe und Ausgabe von Float.

Weitere Informationen finden Sie im TensorFlow Lite -Quantisierungshandbuch nach dem Training .