.tflite — TFLite model formatining mohiyati, tuzilishi va qo'llanilishi

Muallif: IT Sectr Nashr etilgan: 2026-07-18 O'qish vaqti: 6 daq

.tflite — bu Google-ning FlatBuffers texnologiyasiga asoslangan TensorFlow Lite model faylining ikkilik formatidir. Format cheklangan resurslarga ega mobil, o'rnatilgan va edge qurilmalarida samarali inferensiya bajarish uchun optimallashtirilgan. Boshqa serializatsiya formatlaridan farqli o'laroq, FlatBuffers ma'lumotlarga to'g'ridan-to'g'ri kirishni ta'minlaydi va modelni tez ishga tushirish uchun muhim bo'lgan parsingsiz va nusxalashsiz ishlaydi. TensorFlow Lite Converter Guide, 2025 ga ko'ra, .tflite fayli hisoblash grafi, kvantlangan yoki to'liq aniqlikdagi og'irliklar va interpreter uchun metama'lumotlarni o'z ichiga oladi. .tflite Google ekotizimida on-device ML uchun standart formatdir.

Asosiy fikrlar

  • .tflite — mobil inferensiya uchun FlatBuffers asosidagi TensorFlow Lite modelining ikkilik formati.
  • Fayl hisoblash grafi, model og'irliklari va metama'lumotlarni yagona ikkilik konteynerda saqlaydi.
  • FlatBuffers ma'lumotlarga to'g'ridan-to'g'ri kirishni parsingsiz va xotira ajratmasdan ta'minlaydi.
  • INT8, FP16 kvantlash va dinamik kvantlash qo'llab-quvvatlanadi.
  • .tflite TFLite Interpreter bilan Android, iOS va Linux-da ishlatiladi.

.tflite formatining mohiyati

.tflite — cheklangan xotira va hisoblash quvvatiga ega qurilmalarda inferensiya uchun optimallashtirilgan mashina o'rganish modelining seriyalangan ko'rinishidir. Grafikni protobufda saqlaydigan va yuklash uchun katta resurs talab qiladigan SavedModel formatidan farqli o'laroq, .tflite FlatBuffers — ma'lumotlarga nusxalamasdan to'g'ridan-to'g'ri kirish imkonini beruvchi seriyalash kutubxonasidan foydalanadi.

.tflite formati mobil platformalarning xususiyatlarini hisobga olgan holda yaratilgan: yuklashda minimal xotira sarfi, tez ishga tushish, kvantlangan og'irliklarni qo'llab-quvvatlash. .tflite fayli o'qitishni emas, faqat inferensiyani qo'llab-quvvatlaydi. Bu to'liq TensorFlow formatlaridan printsipial farq bo'lib, ish vaqti muhiti hajmini sezilarli darajada kamaytirishga imkon beradi.

Google Research, 2024 ma'lumotlariga ko'ra, INT8 kvantlash bilan .tflite formatidagi modellar FP32 formatidagi o'xshash modellardan 60% tezroq yuklanadi va inferensiya paytida 40% kamroq RAM sarflaydi.

.tflite faylining ichki tuzilishi

.tflite fayli FlatBuffers sxemasi bo'yicha tashkil etilgan bir necha bo'limdan iborat. Asosiy bo'lim — Model, u hisoblash grafigi (SubGraph), operatorlar ro'yxati (OperatorCodes) va og'irliklar bilan buferlarni o'z ichiga oladi. Har bir SubGraph tensorlar, operatorlar, kirish va chiqish indekslarini o'z ichiga oladi.

OperatorCodes bo'limi modelda ishlatiladigan barcha operatorlarning identifikatorlarini o'z ichiga oladi — Conv2D, DepthwiseConv2D, FullyConnected, Softmax va boshqalar. Har bir operator BuiltinOperator-ning oldindan belgilangan ro'yxatidan kodga ega. Agar model ro'yxatda bo'lmagan operatsiyalarni o'z ichiga olsa, ular Custom deb belgilanadi va delegat yoki maxsus operator orqali amalga oshirishni talab qiladi.

Buffers bo'limi model og'irliklarining ikkilik ma'lumotlarini o'z ichiga oladi. Kvantlash rejimiga qarab og'irliklar FP32, FP16, INT8 yoki masshtablash parametrlari bilan kvantlangan formatda saqlanishi mumkin. Buferlar mmap mexanizmi orqali to'g'ridan-to'g'ri xotiraga proyeksiyalanadi, bu qo'shimcha nusxalashni yo'q qiladi.

.tflite faylining asosiy bo'limlari

Bo'limVazifasi
ModelIldiz tuzilmasi, versiya, tavsif
SubGraphHisoblash grafi: tensorlar, operatorlar, kirishlar/chiqishlar
OperatorCodesIshlatiladigan operatorlar ro'yxati
BuffersModel og'irliklarining ikkilik ma'lumotlari
MetadataMetama'lumotlar: versiya, muallif, tavsif
SignatureDefAPI uchun nomlangan kirish va chiqishlar

Formatni kvantlash va optimallashtirish

.tflite uchta kvantlash rejimini qo'llab-quvvatlaydi. To'liq butun sonli INT8 kvantlash — og'irliklar va aktivatsiyalar 8-bitli butun sonlar bilan ifodalanadi. Konvertatsiya uchun aktivatsiya diapazonlarini kalibrlash uchun reprezentativ ma'lumotlar to'plami kerak. Model hajmi 4 marta kamayadi.

FP16 kvantlash — og'irliklar 16-bitli suzuvchi nuqtali sonlarga aylantiriladi. Bu rejim kalibrlashni talab qilmaydi va minimal aniqlik yo'qotishini beradi. Aktivatsiyalar FP32 da qoladi. Model hajmi 2 marta kamayadi. GPU va NPU da FP16 qo'llab-quvvatlovchi qurilmalar uchun tavsiya etiladi.

Dinamik kvantlash — og'irliklar INT8 ga konvertatsiya qilinadi, lekin aktivatsiyalar FP32 da hisoblanadi. Model hajmi 4 marta kamayadi, ammo aniqlik to'liq INT8 dan yuqori bo'lib qoladi. Google ML Performance Benchmarks ga ko'ra, bu rejim NLP modellari va aniqlikka yuqori sezuvchanlikka ega modellar uchun optimaldir.

TensorFlow modelidan .tflite yaratish

Modelni .tflite ga konvertatsiya qilish uchun Python API tf.lite.TFLiteConverter orqali mavjud bo'lgan TensorFlow komponenti TFLite Converter ishlatiladi. Converter uchta manbani qo'llab-quvvatlaydi: SavedModel, Keras H5 va ConcreteFunction. Keras modelini konvertatsiya qilishning minimal namunasi:

python
import tensorflow as tf

# O'qitilgan Keras modelini fayldan yukla
model = tf.keras.models.load_model("my_model.h5")

# Dinamik kvantlash bilan .tflite ga konvertatsiya qil
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

# Konvertatsiya qilingan modelni .tflite fayliga yoz
with open("model.tflite", "wb") as f:
    f.write(tflite_model)

To'liq INT8 kvantlash bilan konvertatsiya qilish uchun kalibrlash ma'lumotlar to'plami kerak. Aktivatsiya diapazonlarini aniqlash uchun representative_dataset ni belgilang:

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 bilan ishlash vositalari

Google .tflite modellarini tahlil qilish va optimallashtirish uchun vositalar to'plamini taqdim etadi. TFLite Benchmark Tool qurilmada inferensiya vaqtini o'lchaydi va har bir operator bo'yicha statistika ko'rsatadi. TFLite Model Inspector hisoblash grafigini vizuallashtiradi va tensor o'lchamlarini ko'rsatadi.

Netron — ONNX, Core ML va PyTorch bilan bir qatorda .tflite ni qo'llab-quvvatlovchi ko'p platformali model vizuallashtiruvchisi. Netron grafik tuzilishini, har bir operatorning parametrlarini va tensorlar orasidagi bog'lanishlarni ko'rsatadi. Konvertatsiya paytida disk raskadrovka uchun foydali.

TFLite Metadata API .tflite fayliga metama'lumotlar qo'shish imkonini beradi: model tavsifi, kirish ma'lumotlari formati, o'lchov birliklari, muallif haqida ma'lumot. Metama'lumotlar Task Library tomonidan preprotsessing va postprotsessingni avtomatik sozlash uchun ishlatiladi.

.tflite yuklash va bajarish namunasi

iOS da Swift API bilan .tflite modelini yuklash namunasi. TFLite Swift API modelni bundle dan yuklash va inferensiya bajarish uchun Interpreter ni taqdim etadi. Core ML Delegate orqali apparat tezlashtirish uchun delegatni belgilang:

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 uchun kirish ma'lumotlarini tayyorla
let inputData = Data.init(count: 1 * 224 * 224 * 3)
try interpreter.copy(inputData, toInputAt: 0)

// Model inferensiyasini bajar
try interpreter.invoke()

// Chiqish tensor ma'lumotlarini o'q
let outputTensor = try interpreter.output(at: 0)
let results = outputTensor.data.withUnsafeBytes {
    Array($0.bindMemory(to: Float32.self))
}

Tez-tez so'raladigan savollar

.tflite faylini matn muharririda ochish mumkinmi?

.tflite fayli ikkilik FlatBuffers formatiga ega va matn muharririda o'qilmaydi. Ko'rish uchun model tuzilishini vizuallashtiruvchi Netron yoki TFLite Model Inspector dan foydalaning.

.tflite da qanday operatorlar ishlatilayotganini qanday tekshirish mumkin?

Python da tf.lite.experimental.Analyzer.analyze(model_path) yoki --print_model_details bayrog'i bilan TFLite Benchmark Tool dan foydalaning. Vositalar parametrlar bilan birga operatorlarning to'liq ro'yxatini ko'rsatadi.

.tflite ONNX dan qanday farq qiladi?

.tflite mobil qurilmalarda inferensiya uchun optimallashtirilgan va FlatBuffers dan foydalanadi. ONNX — protobuf da seriyalash bilan freymvorklar o'rtasida model almashish uchun universal format. TFLite da kvantlash uchun o'rnatilgan qo'llab-quvvatlash mavjud.

.tflite ni TensorFlow ga qayta konvertatsiya qilish mumkinmi?

Yo'q, kvantlash va optimallashtirish paytida ma'lumot yo'qolishi sababli teskari konvertatsiya mavjud emas. Asl TensorFlow modeli keyingi o'qitish yoki o'zgartirishlar uchun alohida saqlanishi kerak.

.tflite fayliga metama'lumotlarni qanday qo'shish mumkin?

Python da TFLite Metadata Writer API dan foydalaning. API Task Library uchun tavsif, kirish/chiqish formati, o'lchov birliklari va namuna ma'lumotlarini qo'shish imkonini beradi.

Xulosa

  • .tflite — mobil inferensiya uchun FlatBuffers asosidagi TensorFlow Lite modelining ikkilik formati.
  • Fayl yagona konteynerda hisoblash grafi, og'irliklar, metama'lumotlar va SignatureDef ni o'z ichiga oladi.
  • FlatBuffers parsingsiz va keraksiz ajratmalarsiz ma'lumotlarga mmap kirishni ta'minlaydi.
  • INT8, FP16 va dinamik kvantlash hajmni 4 martagacha kamaytiradi.
  • Konvertatsiya uchun SavedModel, Keras yoki ConcreteFunction dan TFLite Converter dan foydalaning.
  • Vizualizatsiya va disk raskadrovka Netron, TFLite Inspector va Benchmark Tool orqali mavjud.
  • Metama'lumotlar Task Library bilan integratsiya uchun Metadata Writer API orqali qo'shiladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing