Eğitim sonrası niceleme

Eğitim sonrası niceleme, model doğruluğunda çok az bozulma ile CPU ve donanım hızlandırıcı gecikmesini, işlemeyi, gücü ve model boyutunu azaltmak için genel teknikleri içerir. Bu teknikler, önceden eğitilmiş bir şamandıra TensorFlow modelinde gerçekleştirilebilir ve TensorFlow Lite dönüşümü sırasında uygulanabilir. Bu teknikler, TensorFlow Lite dönüştürücüde seçenek olarak etkinleştirilir.

Doğrudan uçtan uca örneklere atlamak için aşağıdaki eğitimlere bakın:

Ağırlıkları ölçmek

Ağırlıklar, 16 bit kayar sayılar veya 8 bit tamsayılar gibi azaltılmış hassasiyete sahip türlere dönüştürülebilir. Genellikle GPU hızlandırma için 16 bit kayan ve CPU yürütme için 8 bit tam sayı öneririz.

Örneğin, 8 bitlik tamsayı ağırlık nicemlemesinin nasıl belirtileceği aşağıda açıklanmıştır:

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

Çıkarımda, kritik derecede yoğun parçalar kayan nokta yerine 8 bit ile hesaplanır. Aşağıdaki hem ağırlıkların hem de etkinleştirmelerin nicelleştirilmesine göre bazı çıkarım zamanı performans ek yükü vardır.

Daha fazla bilgi için TensorFlow Lite eğitim sonrası niceleme kılavuzuna bakın.

Ağırlıkların ve aktivasyonların tam tamsayı nicelendirmesi

Gecikmeyi, işlemeyi ve güç kullanımını iyileştirin ve hem ağırlıkların hem de etkinleştirmelerin nicelleştirildiğinden emin olarak yalnızca tam sayı donanım hızlandırıcılarına erişin. Bu, küçük bir temsili veri kümesi gerektirir.

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

Ortaya çıkan model, kolaylık sağlamak için yine de float girdi ve çıktı alacaktır.

Daha fazla bilgi için TensorFlow Lite eğitim sonrası niceleme kılavuzuna bakın.