.tflite — สาระสำคัญ โครงสร้าง และการประยุกต์ใช้รูปแบบโมเดล TFLite

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-07-18 เวลาอ่าน: 6 นาที

.tflite คือรูปแบบไฟล์ไบนารีสำหรับโมเดล TensorFlow Lite ที่ใช้เทคโนโลยี FlatBuffers ของ Google รูปแบบนี้ถูกปรับให้เหมาะสมสำหรับการอนุมานที่มีประสิทธิภาพบนอุปกรณ์พกพา อุปกรณ์ฝังตัว และอุปกรณ์ขอบที่มีทรัพยากรจำกัด ซึ่งแตกต่างจากรูปแบบซีเรียลไลเซชันอื่นๆ FlatBuffers ให้การเข้าถึงข้อมูลโดยตรงโดยไม่ต้องแยกวิเคราะห์หรือคัดลอก ซึ่งมีความสำคัญอย่างยิ่งสำหรับการเริ่มต้นโมเดลที่รวดเร็ว ตาม TensorFlow Lite Converter Guide, 2025 ไฟล์ .tflite ประกอบด้วยกราฟการคำนวณ น้ำหนักที่ผ่านการควอนไทซ์หรือความแม่นยำเต็ม และเมตาดาต้าสำหรับอินเทอร์พรีเตอร์ .tflite เป็นรูปแบบมาตรฐานสำหรับ ML บนอุปกรณ์ในระบบนิเวศของ Google

ประเด็นสำคัญ

  • .tflite — รูปแบบไบนารีของโมเดล TensorFlow Lite ที่ใช้ FlatBuffers สำหรับการอนุมานบนมือถือ
  • ไฟล์ประกอบด้วย กราฟการคำนวณ น้ำหนักโมเดล และเมตาดาต้าในคอนเทนเนอร์ไบนารีเดียว
  • FlatBuffers ให้ การเข้าถึงข้อมูลโดยตรง โดยไม่ต้องแยกวิเคราะห์หรือจัดสรรหน่วยความจำ
  • รองรับ การควอนไทซ์ INT8, FP16 และการควอนไทซ์แบบไดนามิก
  • .tflite ใช้ร่วมกับ TFLite Interpreter บน Android, iOS และ Linux

รูปแบบ .tflite คืออะไร

.tflite คือการแสดงซีเรียลไลซ์ของโมเดลแมชชีนเลิร์นนิงที่ปรับให้เหมาะสมสำหรับการอนุมานบนอุปกรณ์ที่มีหน่วยความจำและพลังการคำนวณจำกัด ซึ่งแตกต่างจากรูปแบบ SavedModel ที่เก็บกราฟใน protobuf และต้องใช้ทรัพยากรจำนวนมากในการโหลด .tflite ใช้ FlatBuffers — ไลบรารีซีเรียลไลเซชันที่เข้าถึงข้อมูลได้โดยไม่ต้องคัดลอก

รูปแบบ .tflite ได้รับการออกแบบโดยคำนึงถึง ลักษณะเฉพาะของแพลตฟอร์มมือถือ: การใช้หน่วยความจำน้อยที่สุดระหว่างการโหลด เริ่มต้นเร็ว และรองรับน้ำหนักที่ควอนไทซ์ ไฟล์ .tflite ไม่รองรับการฝึก — เฉพาะการอนุมานเท่านั้น นี่คือความแตกต่างพื้นฐานจากรูปแบบ TensorFlow เต็มรูปแบบ ซึ่งช่วยลดขนาดรันไทม์ได้อย่างมาก

ตาม Google Research, 2024 โมเดลในรูปแบบ .tflite ที่มีการควอนไทซ์ INT8 โหลดเร็วกว่าโมเดล FP32 ที่เทียบเท่า 60% และใช้ RAM น้อยกว่า 40% ระหว่างการอนุมาน

โครงสร้างภายในของไฟล์ .tflite

ไฟล์ .tflite ประกอบด้วย หลายส่วน ที่จัดระเบียบตามสคีมา FlatBuffers ส่วนหลักคือ Model ซึ่งประกอบด้วยกราฟการคำนวณ (SubGraph) รายการโอเปอเรเตอร์ (OperatorCodes) และบัฟเฟอร์น้ำหนัก แต่ละ SubGraph ประกอบด้วยเทนเซอร์ โอเปอเรเตอร์ และดัชนีอินพุตและเอาต์พุต

ส่วน OperatorCodes ประกอบด้วยตัวระบุของโอเปอเรเตอร์ทั้งหมดที่ใช้ในโมเดล — Conv2D, DepthwiseConv2D, FullyConnected, Softmax และอื่นๆ โอเปอเรเตอร์แต่ละตัวมีรหัสจากรายการ BuiltinOperator ที่กำหนดไว้ล่วงหน้า หากโมเดลมีการดำเนินการที่ไม่อยู่ในรายการ จะถูกทำเครื่องหมายเป็น Custom และต้องดำเนินการผ่านตัวแทนหรือโอเปอเรเตอร์ที่กำหนดเอง

ส่วน Buffers ประกอบด้วยข้อมูลไบนารีของน้ำหนักโมเดล ขึ้นอยู่กับโหมดการควอนไทซ์ น้ำหนักสามารถเก็บใน FP32, FP16, INT8 หรือในรูปแบบควอนไทซ์พร้อมพารามิเตอร์การปรับขนาด บัฟเฟอร์จะถูกแมปโดยตรงไปยังหน่วยความจำผ่าน mmap ซึ่งช่วยลดการคัดลอกเพิ่มเติม

ส่วนหลักของไฟล์ .tflite

ส่วนวัตถุประสงค์
Modelโครงสร้างราก เวอร์ชัน คำอธิบาย
SubGraphกราฟการคำนวณ: เทนเซอร์ โอเปอเรเตอร์ อินพุต/เอาต์พุต
OperatorCodesรายการโอเปอเรเตอร์ที่ใช้
Buffersข้อมูลไบนารีของน้ำหนักโมเดล
Metadataเมตาดาต้า: เวอร์ชัน ผู้เขียน คำอธิบาย
SignatureDefอินพุตและเอาต์พุตที่มีชื่อสำหรับ API

การควอนไทซ์และการปรับรูปแบบให้เหมาะสม

.tflite รองรับ สามโหมดการควอนไทซ์ การควอนไทซ์จำนวนเต็ม INT8 เต็มรูปแบบ — น้ำหนักและแอคติเวชันแสดงเป็นจำนวนเต็ม 8 บิต การแปลงต้องใช้ชุดข้อมูลที่เป็นตัวแทนสำหรับปรับเทียบช่วงแอคติเวชัน ขนาดโมเดลลดลง 4 เท่า

การควอนไทซ์ FP16 — น้ำหนักถูกแปลงเป็นตัวเลขทศนิยม 16 บิต โหมดนี้ไม่ต้องการการปรับเทียบและให้ความแม่นยำลดลงน้อยที่สุด แอคติเวชันยังคงอยู่ใน FP32 ขนาดโมเดลลดลง 2 เท่า แนะนำสำหรับอุปกรณ์ที่รองรับ FP16 บน GPU และ NPU

การควอนไทซ์แบบไดนามิก — น้ำหนักถูกแปลงเป็น INT8 แต่แอคติเวชันคำนวณใน FP32 ขนาดโมเดลลดลง 4 เท่าในขณะที่ความแม่นยำยังคงสูงกว่า INT8 เต็มรูปแบบ ตาม Google ML Performance Benchmarks โหมดนี้เหมาะสมที่สุดสำหรับโมเดล NLP และโมเดลที่มีความไวต่อความแม่นยำสูง

การสร้าง .tflite จากโมเดล TensorFlow

ในการแปลงโมเดลเป็น .tflite ให้ใช้ TFLite Converter — คอมโพเนนต์ TensorFlow ที่ใช้งานได้ผ่าน Python API tf.lite.TFLiteConverter ตัวแปลงรองรับสามแหล่ง: SavedModel, Keras H5 และ ConcreteFunction ตัวอย่างขั้นต่ำของการแปลงโมเดล Keras:

python
import tensorflow as tf

# โหลดโมเดล Keras ที่ฝึกแล้วจากไฟล์
model = tf.keras.models.load_model("my_model.h5")

# แปลงเป็น .tflite ด้วยการควอนไทซ์แบบไดนามิก
converter = tf.lite.TFLiteConverter.from_keras_model(model)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_model = converter.convert()

# เขียนโมเดลที่แปลงแล้วลงในไฟล์ .tflite
with open("model.tflite", "wb") as f:
    f.write(tflite_model)

สำหรับการแปลงด้วย การควอนไทซ์ INT8 เต็มรูปแบบ จำเป็นต้องมีชุดข้อมูลปรับเทียบ ระบุ representative_dataset เพื่อกำหนดช่วงแอคติเวชัน:

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

Google จัดเตรียม ชุดเครื่องมือ สำหรับวิเคราะห์และปรับโมเดล .tflite ให้เหมาะสม TFLite Benchmark Tool วัดเวลาอนุมานบนอุปกรณ์และแสดงสถิติของแต่ละโอเปอเรเตอร์ TFLite Model Inspector แสดงภาพกราฟการคำนวณและแสดงขนาดเทนเซอร์

Netron คือเครื่องมือแสดงภาพโมเดลข้ามแพลตฟอร์มที่รองรับ .tflite พร้อมกับ ONNX, Core ML และ PyTorch Netron แสดงโครงสร้างกราฟ พารามิเตอร์ของแต่ละโอเปอเรเตอร์ และการเชื่อมต่อระหว่างเทนเซอร์ มีประโยชน์สำหรับการดีบักระหว่างการแปลง

TFLite Metadata API อนุญาตให้เพิ่มเมตาดาต้าลงในไฟล์ .tflite: คำอธิบายโมเดล รูปแบบข้อมูลอินพุต หน่วยวัด ข้อมูลผู้เขียน เมตาดาต้าถูกใช้โดย Task Library สำหรับการกำหนดค่าการประมวลผลล่วงหน้าและการประมวลผลภายหลังโดยอัตโนมัติ

ตัวอย่างการโหลดและรัน .tflite

ตัวอย่างการโหลดโมเดล .tflite บน iOS ด้วย Swift API Swift API ของ TFLite มี Interpreter สำหรับโหลดโมเดลจากบันเดิลและรันการอนุมาน ระบุตัวแทนสำหรับการเร่งความเร็วฮาร์ดแวร์ผ่าน Core ML Delegate:

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

// เตรียมข้อมูลอินพุตสำหรับโมเดล
let inputData = Data.init(count: 1 * 224 * 224 * 3)
try interpreter.copy(inputData, toInputAt: 0)

// รันการอนุมานโมเดล
try interpreter.invoke()

// อ่านข้อมูลเทนเซอร์เอาต์พุต
let outputTensor = try interpreter.output(at: 0)
let results = outputTensor.data.withUnsafeBytes {
    Array($0.bindMemory(to: Float32.self))
}

คำถามที่พบบ่อย

สามารถเปิดไฟล์ .tflite ในโปรแกรมแก้ไขข้อความได้หรือไม่?

ไฟล์ .tflite มี รูปแบบไบนารี FlatBuffers และไม่สามารถอ่านได้ในโปรแกรมแก้ไขข้อความ หากต้องการดู ให้ใช้ Netron หรือ TFLite Model Inspector ซึ่งแสดงภาพโครงสร้างโมเดล

จะตรวจสอบได้ว่าโอเปอเรเตอร์ใดถูกใช้ใน .tflite?

ใช้ tf.lite.experimental.Analyzer.analyze(model_path) ใน Python หรือ TFLite Benchmark Tool พร้อมแฟล็ก --print_model_details เครื่องมือเหล่านี้แสดงรายการโอเปอเรเตอร์ทั้งหมดพร้อมพารามิเตอร์

.tflite แตกต่างจาก ONNX อย่างไร?

.tflite ถูกปรับให้เหมาะสมสำหรับการอนุมานบนอุปกรณ์มือถือและใช้ FlatBuffers ONNX เป็นรูปแบบสากลสำหรับการแลกเปลี่ยนโมเดลระหว่างเฟรมเวิร์กด้วยซีเรียลไลเซชัน protobuf TFLite มีการรองรับการควอนไทซ์ในตัว

สามารถแปลง .tflite กลับเป็น TensorFlow ได้หรือไม่?

ไม่ ไม่มีการแปลงกลับ เนื่องจากการสูญเสียข้อมูลระหว่างการควอนไทซ์และการปรับให้เหมาะสม โมเดล TensorFlow ดั้งเดิมควรบันทึกแยกต่างหากสำหรับการฝึกหรือการปรับเปลี่ยนในอนาคต

จะเพิ่มเมตาดาต้าลงในไฟล์ .tflite ได้อย่างไร?

ใช้ TFLite Metadata Writer API ใน Python API อนุญาตให้เพิ่มคำอธิบาย รูปแบบอินพุต/เอาต์พุต หน่วยวัด และข้อมูลตัวอย่างสำหรับ Task Library

สรุป

  • .tflite — รูปแบบไบนารีของโมเดล TensorFlow Lite ที่ใช้ FlatBuffers สำหรับการอนุมานบนมือถือ
  • ไฟล์ประกอบด้วย กราฟการคำนวณ น้ำหนัก เมตาดาต้า และ SignatureDef ในคอนเทนเนอร์เดียว
  • FlatBuffers ให้ การเข้าถึง mmap ไปยังข้อมูลโดยไม่ต้องแยกวิเคราะห์หรือจัดสรรเพิ่มเติม
  • การควอนไทซ์ INT8, FP16 และไดนามิก ลดขนาด ได้ถึง 4 เท่า
  • ใช้ TFLite Converter จาก SavedModel, Keras หรือ ConcreteFunction สำหรับการแปลง
  • การแสดงภาพและการดีบักทำได้ผ่าน Netron, TFLite Inspector และ Benchmark Tool
  • เมตาดาต้า ถูกเพิ่มผ่าน Metadata Writer API สำหรับการรวมเข้ากับ Task Library

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม