Eğitim sonrası niceleme

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

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 float TensorFlow modelinde gerçekleştirilebilir ve TensorFlow Lite dönüşümü sırasında uygulanabilir. Bu teknikler, TensorFlow Lite dönüştürücüsünde seçenekler olarak etkinleştirilir.

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

Ağırlıkları niceleme

Ağırlıklar, 16 bitlik kayan noktalar veya 8 bitlik tamsayılar gibi azaltılmış hassasiyete sahip türlere dönüştürülebilir. Genellikle GPU hızlandırması için 16-bit kayan nokta ve CPU yürütmesi için 8-bit tamsayı öneririz.

Örneğin, 8 bit tamsayı ağırlık nicelemenin nasıl belirleneceğ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 olarak en yoğun parçalar kayan nokta yerine 8 bit ile hesaplanır. Aşağıda hem ağırlıkların hem de aktivasyonların nicelenmesine 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ı nicemlemesi

Hem ağırlıkların hem de etkinleştirmelerin nicelleştirildiğinden emin olarak gecikmeyi, işlemeyi ve güç kullanımını iyileştirin ve yalnızca tamsayılı donanım hızlandırıcılarına erişin. Bu, küçük bir temsili veri seti 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 kayan girdi ve çıktı alacaktır.

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