TensorFlow Lite — nedir, temel özellikleri ve uygulamaları

Yazar: IT Sectr Yayınlanma: 2026-07-17 Okuma süresi: 6 dk

TensorFlow Lite, sınırlı hesaplama kaynaklarına sahip mobil ve gömülü cihazlarda makine öğrenimi modellerini çalıştırmak için Google tarafından geliştirilen TensorFlow çerçevesinin hafif bir sürümüdür. Tam TensorFlow’un aksine TFLite, eğitim desteği olmadan hızlı çıkarım için optimize edilmiş özel bir yorumlayıcı ve .tflite formatı kullanır. TensorFlow Lite Guide, 2025’e göre, çerçeve Android, iOS ve Linux’ta çalışır ve 4 milyardan fazla cihazda kullanılır. TensorFlow Lite niceleme, NNAPI, GPU ve Core ML delegeleri aracılığıyla donanım hızlandırmasını destekler.

Önemli noktalar

  • TensorFlow Lite, mobil ve gömülü cihazlarda cihaz içi ML için hafif bir çerçevedir.
  • Modeller, TensorFlow SavedModel veya Keras’tan TFLite dönüştürücüsü aracılığıyla .tflite formatına dönüştürülür.
  • Boyutu küçültmek için INT8, FP16 niceleme ve dinamik niceleme desteklenir.
  • Donanım hızlandırması GPU Delegate, NNAPI ve Core ML Delegate aracılığıyla kullanılabilir.
  • TFLite, Android, iOS ve Linux’ta Java, C++, Swift ve Python API’leri ile çalışır.

TensorFlow Lite Nedir

TensorFlow Lite, sınırlı kaynaklara sahip cihazlarda makine öğrenimi modellerini çalıştırmak için özel bir çalışma zamanıdır. Tam TensorFlow’un aksine TFLite, eğitim veya geri yayılımı desteklemez — yalnızca çıkarım. Bu, kütüphanenin ikili boyutunun minimumda tutulmasını sağlar: Android’de temel yorumlayıcı için yaklaşık 300 KB.

TFLite mimarisi, FlatBuffers tabanlı .tflite formatı etrafında inşa edilmiştir. FlatBuffers, ayrıştırma aşaması olmadan verilere doğrudan erişim sağlar; bu, sınırlı belleğe sahip mobil cihazlar için kritiktir. .tflite formatındaki bir model, hesaplama grafiğini, ağırlıkları ve meta verileri tek bir ikili dosyada içerir.

Google I/O 2024’e göre TFLite, Google Photos, Gboard, YouTube ve diğer Google uygulamalarında 4 milyardan fazla cihazda kullanılmaktadır. Çerçeve, CNN, RNN, LSTM, Transformer ve delegeler aracılığıyla özel işlemler dahil tüm ana mimarileri destekler.

TensorFlow Lite Mimarisi

TFLite çalışma zamanı dört bileşenden oluşur. TFLite Converter, TensorFlow’dan (SavedModel, Keras, ConcreteFunction) bir model alır ve isteğe bağlı optimizasyonla .tflite formatına dönüştürür. TFLite Interpreter, .tflite dosyasını yükler ve tensörleri ve belleği yöneterek çıkarımı gerçekleştirir.

Delegeler, işlem yürütmeyi özel donanıma aktaran bileşenlerdir. GPU Delegate OpenGL ES ve Metal kullanır, NNAPI Delegate Android Neural Networks API’sini kullanır, Core ML Delegate Apple Core ML’yi kullanır. XNNPACK Delegate, ARM CPU’da yürütmeyi optimize eder. Her delege belirli bir operatör kümesini destekler.

Dördüncü bileşen, tipik görevler için üst düzey API’ler sağlayan Task Library’dir: görüntü sınıflandırma, nesne tespiti, segmentasyon, NLU. Task Library, Yorumlayıcı üzerinde çalışır ve tensör yönetiminin ayrıntılarını gizler.

Model Optimizasyonu ve Niceleme

TFLite üç düzey niceleme destekler. Tam tamsayı INT8 nicelemesi, ağırlıkları ve etkinleştirmeleri FP32’den 8 bitlik tamsayılara dönüştürür. Model boyutu 4 kat küçülür ve INT8 destekli cihazlarda çıkarım hızı 3 kata kadar artar. FP16 nicelemesi, minimum doğruluk kaybıyla boyutu yarıya indirir.

Dinamik niceleme ağırlıkları INT8’de tutar ancak hesaplamaları FP32’de gerçekleştirir. Bu mod, doğruluğa duyarlı modeller için uygundur ve kaliteyi korurken 4 kata kadar boyut küçültme sağlar. Google ML Performance Benchmarks’a göre, NLP modelleri için dinamik niceleme önerilir.

TFLite Niceleme Modları Karşılaştırması

ModAğırlık TürüEtkinleştirme TürüBoyut Küçültme
FP32 (niceleme yok)FP32FP321x
FP16FP16FP322x
Dinamik INT8INT8FP324x
Tam INT8INT8INT84x

Android ve iOS’ta Donanım Hızlandırması

Android’de ana hızlandırma mekanizması, Android Neural Networks API aracılığıyla işlem yürütmeyi NPU, DSP veya GPU’ya aktaran NNAPI Delegate’dir. NNAPI, Android 8.1+ cihazlarda kullanılabilir ve INT8 ile FP16 hesaplamalarını destekler. Android için GPU Delegate, OpenGL ES 3.1+ ve Vulkan kullanır.

iOS’ta hızlandırma, TFLite işlemlerini Core ML formatına çeviren ve Apple Neural Engine’de yürüten Core ML Delegate aracılığıyla sağlır. Apple ML Benchmarking’e göre, Core ML Delegate kullanımı iPhone 15 Pro’da çıkarımı CPU’ya kıyasla 4 kata kadar hızlandırır. iOS için GPU Delegate, Metal Performance Shaders kullanır.

XNNPACK Delegate, mobil işlemciler için optimize edilmiş ARM CPU için çapraz platform bir çözümdür. XNNPACK, FP32, FP16 ve INT8 işlemlerini destekler ve özel donanım gerektirmez. Tüm cihazlar için temel delege olarak önerilir.

TFLite ile Model Dağıtımı

Dağıtım süreci üç adım içerir. İlk olarak TFLite Converter aracılığıyla model .tflite’a dönüştürülür. İkinci olarak .tflite dosyası uygulama kaynaklarına dahil edilir. Android için dosya assets klasörüne yerleştirilir; iOS için Xcode aracılığıyla uygulama paketine eklenir. Üçüncü olarak Yorumlayıcı başlatılır ve çıkarım gerçekleştirilir.

Dinamik model güncellemeleri için Google, Firebase ML Model Downloading veya buluttan özel indirme mekanizması kullanılmasını önerir. Güncellenen .tflite dosyası yerel depolamaya kaydedilir ve bir sonraki başlatmada Yorumlayıcı’ya yüklenir.

Dağıtım sırasında .tflite dosya boyutunu dikkate almak önemlidir. Google Play, APK boyutunu 200 MB ile sınırlar. 50 MB’tan büyük modeller için Android App Bundle kullanılması veya modelin Play Asset Delivery aracılığıyla ayrı olarak indirilmesi önerilir.

Kodda TFLite Kullanım Örnekleri

Android’de Java API ile model yükleme ve çalıştırma örneği. .tflite’ı assets’ten yüklemek için Interpreter.create() ve çıkarım için run() kullanın. Giriş ve çıkış verileri çok boyutlu diziler veya ByteBuffer olarak iletilir:

java
import org.tensorflow.lite.Interpreter;
import java.nio.MappedByteBuffer;
import java.io.FileInputStream;
import java.nio.channels.FileChannel;

MappedByteBuffer model = new FileInputStream(
    getAssets().openFd("model.tflite")
).getChannel().map(
    FileChannel.MapMode.READ_ONLY, 0, fc.size()
);

Interpreter interpreter = new Interpreter.create(model);
float[][] input = new float[1][224 * 224 * 3];
float[][] output = new float[1][1000];
interpreter.run(input, output);
interpreter.close();

Donanım hızlandırması için Android’de GPU Delegate kullanımı örneği. com.android.support:tensorflow-lite-gpu bağımlılığını ekleyin ve Yorumlayıcı’yı oluştururken delegeleri belirtin:

java
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.gpu.GpuDelegate;

GpuDelegate gpuDelegate = new GpuDelegate.create();
Interpreter.Options options = new Interpreter.Options().addDelegate(gpuDelegate);
Interpreter interpreter = new Interpreter.create(model, options);

// Run inference on the input data
interpreter.run(input, output);

// Release delegate resources after inference
gpuDelegate.close();
interpreter.close();

Sıkça Sorulan Sorular

TensorFlow ve TensorFlow Lite arasındaki fark nedir?

TensorFlow eğitim ve çıkarım için tam bir çerçevedir. TensorFlow Lite yalnızca mobil cihazlarda çıkarım içindir. TFLite, .tflite formatını kullanır ve geri yayılımı desteklemez.

TFLite’da hangi hızlandırma delegeleri mevcuttur?

Desteklenen delegeler şunları içerir: GPU Delegate (OpenGL/Metal), NNAPI Delegate (Android), Core ML Delegate (iOS) ve XNNPACK Delegate (ARM CPU). Her delege belirli bir donanım türü için optimize edilmiştir.

.tflite modelinin boyutu nasıl küçültülür?

Niceleme kullanın: FP16 boyutu 2 kat, INT8 4 kat küçültür. Dinamik niceleme, ağırlık budama ve dönüştürme öncesi model damıtma da mevcuttur.

TFLite cihaz içi eğitimi destekler mi?

Evet, TFLite Model Maker ve cihaz içi eğitim API’si (deneysel) aracılığıyla destekler. Kullanıcının cihazında doğrudan ince ayar ve model kişiselleştirme desteklenir.

TFLite hangi model türlerini destekler?

TFLite, CNN, RNN, LSTM, Transformer, mobil mimariler (MobileNet, EfficientNet, YOLO, BERT) ve özel işlemleri destekler. Sınırlama, hedef delegede bulunan operatörlerdir.

Özet

  • TensorFlow Lite, Google’ın mobil ve gömülü cihazlarda cihaz içi ML için hafif bir çerçevesidir.
  • Modeller, TFLite Converter aracılığıyla TensorFlow SavedModel veya Keras’tan .tflite formatına dönüştürülür.
  • INT8 ve FP16 nicelemesi, model boyutunu 4 kata kadar küçültür ve çıkarımı 3 kata kadar hızlandırır.
  • Donanım hızlandırması GPU, NNAPI, Core ML ve XNNPACK delegeleri aracılığıyla kullanılabilir.
  • Çalışma zamanı Android’de yaklaşık 300 KB yer kaplar ve 4 milyardan fazla cihazda çalışır.
  • Task Library, sınıflandırma, tespit, segmentasyon ve NLU için hazır çözümler sağlar.
  • Dinamik güncellemeler için Firebase ML veya Play Asset Delivery kullanın.

Anahtar teslim bir mobil uygulama geliştireceğiz

IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.

Projeyi tartış

Ayrıca okuyun