.tflite — TFLite model biçiminin özü, yapısı ve uygulaması

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

.tflite, Google'ın FlatBuffers teknolojisine dayanan TensorFlow Lite modelleri için ikili bir dosya biçimidir. Biçim, sınırlı kaynaklara sahip mobil, gömülü ve uç cihazlarda verimli çıkarım için optimize edilmiştir. Diğer serileştirme biçimlerinin aksine FlatBuffers, ayrıştırma ve kopyalama olmadan verilere doğrudan erişim sağlar; bu, modelin hızlı başlatılması için kritik öneme sahiptir. TensorFlow Lite Converter Guide, 2025'e göre, .tflite dosyası bir hesaplama grafiği, kuantize edilmiş veya tam hassasiyetli ağırlıklar ve yorumlayıcı için meta veriler içerir. .tflite, Google ekosisteminde cihaz içi ML için standart biçimdir.

Önemli Noktalar

  • .tflite — mobil çıkarım için FlatBuffers tabanlı TensorFlow Lite modelinin ikili biçimi.
  • Dosya, tek bir ikili kapsayıcıda hesaplama grafiği, model ağırlıkları ve meta veriler içerir.
  • FlatBuffers, ayrıştırma ve bellek ayırmadan verilere doğrudan erişim sağlar.
  • INT8, FP16 kuantizasyonu ve dinamik kuantizasyonu destekler.
  • .tflite, Android, iOS ve Linux'ta TFLite Interpreter ile birlikte kullanılır.

.tflite biçimi nedir

.tflite, sınırlı bellek ve hesaplama gücüne sahip cihazlarda çıkarım için optimize edilmiş bir makine öğrenimi modelinin serileştirilmiş temsilidir. Grafiği protobuf'ta depolayan ve yüklenmesi önemli kaynaklar gerektiren SavedModel biçiminin aksine, .tflite FlatBuffers'ı kullanır — kopyasız veri erişimi sağlayan bir serileştirme kütüphanesi.

.tflite biçimi, mobil platform özellikleri dikkate alınarak tasarlanmıştır: yükleme sırasında minimum bellek tüketimi, hızlı başlatma ve kuantize edilmiş ağırlık desteği. .tflite dosyası eğitimi desteklemez — yalnızca çıkarım. Bu, tam TensorFlow biçimlerinden temel bir farktır ve çalışma zamanı boyutunu önemli ölçüde azaltmaya olanak tanır.

Google Research, 2024'e göre, INT8 kuantizasyonlu .tflite biçimindeki modeller, eşdeğer FP32 modellerinden %60 daha hızlı yüklenir ve çıkarım sırasında %40 daha az RAM tüketir.

.tflite dosyasının iç yapısı

.tflite dosyası, FlatBuffers şemasına göre düzenlenmiş birkaç bölümden oluşur. Ana bölüm, hesaplama grafiğini (SubGraph), operatörlerin listesini (OperatorCodes) ve ağırlık tamponlarını içeren Model'dir. Her SubGraph, tensörler, operatörler ve giriş/çıkış indeksleri içerir.

OperatorCodes bölümü, modelde kullanılan tüm operatörlerin tanımlayıcılarını içerir — Conv2D, DepthwiseConv2D, FullyConnected, Softmax ve diğerleri. Her operatörün önceden tanımlanmış BuiltinOperator listesinden bir kodu vardır. Model, listede olmayan işlemler içeriyorsa, bunlar Custom olarak işaretlenir ve bir temsilci veya özel operatör aracılığıyla uygulama gerektirir.

Buffers bölümü, modelin ağırlıklarının ikili verilerini içerir. Kuantizasyon moduna bağlı olarak, ağırlıklar FP32, FP16, INT8 veya ölçekleme parametreleriyle kuantize edilmiş biçimde saklanabilir. Tamponlar, mmap aracılığıyla doğrudan belleğe eşlenir ve ekstra kopyalamayı ortadan kaldırır.

.tflite dosyasının ana bölümleri

BölümAmaç
ModelKök yapı, sürüm, açıklama
SubGraphHesaplama grafiği: tensörler, operatörler, girişler/çıkışlar
OperatorCodesKullanılan operatörlerin listesi
BuffersModel ağırlıklarının ikili verileri
MetadataMeta veriler: sürüm, yazar, açıklama
SignatureDefAPI için adlandırılmış girişler ve çıkışlar

Kuantizasyon ve biçim optimizasyonu

.tflite üç kuantizasyon modunu destekler. Tam tamsayı INT8 kuantizasyonu — ağırlıklar ve aktivasyonlar 8-bit tamsayılar olarak temsil edilir. Dönüştürme, aktivasyon aralıklarını kalibre etmek için temsili bir veri kümesi gerektirir. Model boyutu 4 kat küçülür.

FP16 kuantizasyonu — ağırlıklar 16-bit kayan nokta sayılarına dönüştürülür. Bu mod kalibrasyon gerektirmez ve minimum hassasiyet kaybı sağlar. Aktivasyonlar FP32'de kalır. Model boyutu 2 kat küçülür. GPU ve NPU'da FP16 desteği olan cihazlar için önerilir.

Dinamik kuantizasyon — ağırlıklar INT8'e dönüştürülür ancak aktivasyonlar FP32'de hesaplanır. Model boyutu 4 kat küçülürken hassasiyet tam INT8'den daha yüksek kalır. Google ML Performance Benchmarks'e göre, bu mod NLP modelleri ve yüksek hassasiyet duyarlılığına sahip modeller için idealdir.

TensorFlow modelinden .tflite oluşturma

Bir modeli .tflite'a dönüştürmek için TFLite Converter kullanılır — Python API tf.lite.TFLiteConverter aracılığıyla kullanılabilen bir TensorFlow bileşeni. Dönüştürücü üç kaynağı destekler: SavedModel, Keras H5 ve ConcreteFunction. Bir Keras modeli dönüştürmenin minimum örneği:

python
import tensorflow as tf

# Eğitilmiş Keras modelini dosyadan yükle
model = tf.keras.models.load_model("my_model.h5")

# Dinamik kuantizasyonla .tflite'a dönüştür
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

# Dönüştürülmüş modeli bir .tflite dosyasına yaz
with open("model.tflite", "wb") as f:
    f.write(tflite_model)

Tam INT8 kuantizasyonu ile dönüştürme için bir kalibrasyon veri kümesi gereklidir. Aktivasyon aralıklarını belirlemek için representative_dataset sağlayın:

python
converter = tf.lite.TFLiteConverter.from_saved_model("saved_model")
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset
converter.target_spec.supported_ops = [
    tf.lite.OpsSet.TFLITE_BUILTINS_INT8
]
converter.inference_input_type = tf.uint8
converter.inference_output_type = tf.uint8
tflite_quant_model = converter.convert()

.tflite ile çalışma araçları

Google, .tflite modellerini analiz etmek ve optimize etmek için bir dizi araç sağlar. TFLite Benchmark Tool, cihazda çıkarım süresini ölçer ve her operatör için istatistikleri gösterir. TFLite Model Inspector, hesaplama grafiğini görselleştirir ve tensör boyutlarını gösterir.

Netron, ONNX, Core ML ve PyTorch ile birlikte .tflite'ı destekleyen platformlar arası bir model görselleştiricisidir. Netron, grafik yapısını, her operatörün parametrelerini ve tensörler arasındaki bağlantıları görüntüler. Dönüştürme sırasında hata ayıklama için kullanışlıdır.

TFLite Metadata API, .tflite dosyasına meta veri eklemeye olanak tanır: model açıklaması, giriş verisi biçimi, ölçüm birimleri, yazar bilgisi. Meta veriler, otomatik ön işleme ve son işleme yapılandırması için Task Library tarafından kullanılır.

.tflite yükleme ve çalıştırma örneği

iOS'ta Swift API ile .tflite modeli yükleme örneği. TFLite Swift API, paketten modeli yüklemek ve çıkarım çalıştırmak için bir Interpreter sağlar. Core ML Delegate aracılığıyla donanım hızlandırması için bir temsilci belirtin:

swift
import TensorFlowLite

guard let modelPath = Bundle.main.path(
    forResource: "model", ofType: "tflite"
) else { return }

let interpreter = try Interpreter.init(modelPath: modelPath)
try interpreter.allocateTensors()

// Model için giriş verilerini hazırla
let inputData = Data.init(count: 1 * 224 * 224 * 3)
try interpreter.copy(inputData, toInputAt: 0)

// Model çıkarımını çalıştır
try interpreter.invoke()

// Çıkış tensör verilerini oku
let outputTensor = try interpreter.output(at: 0)
let results = outputTensor.data.withUnsafeBytes {
    Array($0.bindMemory(to: Float32.self))
}

Sıkça Sorulan Sorular

.tflite dosyası bir metin düzenleyicide açılabilir mi?

.tflite dosyası ikili FlatBuffers biçimine sahiptir ve bir metin düzenleyicide okunamaz. Görüntülemek için model yapısını görselleştiren Netron veya TFLite Model Inspector'ı kullanın.

.tflite'da hangi operatörlerin kullanıldığı nasıl kontrol edilir?

Python'da tf.lite.experimental.Analyzer.analyze(model_path) veya --print_model_details bayrağıyla TFLite Benchmark Tool kullanın. Bu araçlar, parametreleriyle birlikte operatörlerin tam listesini gösterir.

.tflite, ONNX'tan nasıl farklıdır?

.tflite mobil cihazlarda çıkarım için optimize edilmiştir ve FlatBuffers kullanır. ONNX, protobuf serileştirmesi ile çerçeveler arasında model alışverişi için evrensel bir biçimdir. TFLite'da yerleşik kuantizasyon desteği bulunur.

.tflite tekrar TensorFlow'a dönüştürülebilir mi?

Hayır, kuantizasyon ve optimizasyon sırasında bilgi kaybı nedeniyle ters dönüştürme mevcut değildir. Orijinal TensorFlow modeli, gelecekteki eğitim veya değişiklikler için ayrı olarak kaydedilmelidir.

.tflite dosyasına meta veri nasıl eklenir?

Python'da TFLite Metadata Writer API'sını kullanın. API, Task Library için açıklama, giriş/çıkış biçimi, ölçüm birimleri ve örnek veri eklemeye olanak tanır.

Özet

  • .tflite — mobil çıkarım için FlatBuffers tabanlı TensorFlow Lite modelinin ikili biçimi.
  • Dosya, tek bir kapsayıcıda hesaplama grafiği, ağırlıklar, meta veriler ve SignatureDef içerir.
  • FlatBuffers, ayrıştırma veya ekstra ayırma olmadan verilere mmap erişimi sağlar.
  • INT8, FP16 ve dinamik kuantizasyon boyutu 4 kata kadar küçültür.
  • Dönüştürme için SavedModel, Keras veya ConcreteFunction'dan TFLite Converter kullanın.
  • Görselleştirme ve hata ayıklama Netron, TFLite Inspector ve Benchmark Tool ile kullanılabilir.
  • Task Library entegrasyonu için meta veriler Metadata Writer API aracılığıyla eklenir.

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