TensorFlow Lite คือชุดเครื่องมือที่เปิดใช้แมชชีนเลิร์นนิงในอุปกรณ์โดยช่วยให้นักพัฒนาซอฟต์แวร์เรียกใช้โมเดลบนอุปกรณ์เคลื่อนที่ อุปกรณ์แบบฝัง และอุปกรณ์ Edge
ฟีเจอร์หลัก
- เพิ่มประสิทธิภาพสำหรับแมชชีนเลิร์นนิงในอุปกรณ์โดยการจัดการข้อจำกัดหลัก 5 ประการ ได้แก่ เวลาในการตอบสนอง (ไม่มีการรับส่งไปยังเซิร์ฟเวอร์) ความเป็นส่วนตัว (ไม่มีการใช้ข้อมูลส่วนตัวออกจากอุปกรณ์) การเชื่อมต่อ (ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ต) ขนาด (โมเดลที่เล็กลงและขนาดไบนารี) และการใช้พลังงาน (การอนุมานที่มีประสิทธิภาพและการขาดการเชื่อมต่อเครือข่าย)
- รองรับหลายแพลตฟอร์ม โดยครอบคลุมอุปกรณ์ Android และ iOS, Linux แบบฝัง และไมโครคอนโทรลเลอร์
- รองรับภาษาที่หลากหลาย ซึ่งรวมถึง Java, Swift, Objective-C, C++ และ Python
- ประสิทธิภาพสูง พร้อมด้วยการเร่งฮาร์ดแวร์และการเพิ่มประสิทธิภาพโมเดล
เวิร์กโฟลว์ในการพัฒนา
คำแนะนำต่อไปนี้จะอธิบายเวิร์กโฟลว์แต่ละขั้นตอนและให้ลิงก์ไปยังวิธีการเพิ่มเติม
1. สร้างโมเดล TensorFlow Lite
โมเดล TensorFlow Lite แสดงในรูปแบบพิเศษที่พกพาสะดวกซึ่งมีชื่อว่า FlatBuffers (ระบุโดยนามสกุลไฟล์ .tflite) ซึ่งมีข้อได้เปรียบหลายประการเมื่อเทียบกับรูปแบบบัฟเฟอร์โปรโตคอลของ TensorFlow เช่น ขนาดที่ลดลง (ร่องรอยโค้ดขนาดเล็ก) และการอนุมานที่เร็วขึ้น (เข้าถึงข้อมูลโดยตรงโดยไม่ต้องมีขั้นตอนการแยกวิเคราะห์/คลายการแพคข้อมูลเพิ่มเติม) ทำให้ TensorFlow Lite ดำเนินการได้อย่างมีประสิทธิภาพในอุปกรณ์ที่มีทรัพยากรการประมวลผลและหน่วยความจำที่จำกัด
โมเดล TensorFlow Lite อาจรวมข้อมูลเมตาที่มีคำอธิบายโมเดลที่มนุษย์อ่านได้และข้อมูลที่เครื่องอ่านได้เพื่อสร้างไปป์ไลน์ก่อนและหลังการประมวลผลโดยอัตโนมัติในระหว่างการอนุมานในอุปกรณ์ โปรดดูรายละเอียดเพิ่มเติมที่เพิ่มข้อมูลเมตา
คุณสร้างโมเดล TensorFlow Lite ได้ด้วยวิธีต่อไปนี้
ใช้โมเดล TensorFlow Lite ที่มีอยู่: โปรดดูตัวอย่าง TensorFlow Lite เพื่อเลือกโมเดลที่มีอยู่ โมเดลอาจมีหรือไม่มีข้อมูลเมตา
แปลงโมเดล TensorFlow เป็นโมเดล TensorFlow Lite: ใช้ตัวแปลง TensorFlow Lite เพื่อแปลงโมเดล TensorFlow เป็นโมเดล TensorFlow Lite ในระหว่าง Conversion คุณสามารถใช้การเพิ่มประสิทธิภาพ เช่น การวัดปริมาณ เพื่อลดขนาดรูปแบบและเวลาในการตอบสนองโดยให้ความแม่นยําน้อยที่สุดหรือไม่สูญเสียเลย โดยค่าเริ่มต้น โมเดลทั้งหมดจะไม่มีข้อมูลเมตา
2. เรียกใช้การอนุมาน
การอนุมานหมายถึงกระบวนการเรียกใช้โมเดล TensorFlow Lite ในอุปกรณ์เพื่อคาดการณ์ตามข้อมูลอินพุต คุณเรียกใช้การอนุมานได้ด้วยวิธีต่อไปนี้โดยอิงตามประเภทโมเดล
โมเดลที่ไม่มีข้อมูลเมตา: ใช้ TensorFlow Lite Publisher API รองรับแพลตฟอร์มและภาษาที่หลากหลาย เช่น Java, Swift, C++, Objective-C และ Python
โมเดลที่มีข้อมูลเมตา: คุณสร้างไปป์ไลน์การอนุมานที่กำหนดเองได้โดยใช้ไลบรารีการสนับสนุนของ TensorFlow Lite ในอุปกรณ์ Android ผู้ใช้จะสร้าง Wrapper โค้ดได้โดยอัตโนมัติโดยใช้การเชื่อมโยงโมเดล ML ของ Android Studio หรือเครื่องมือสร้างโค้ด TensorFlow Lite รองรับเฉพาะใน Java (Android) ในขณะที่ Swift (iOS) และ C++ อยู่ระหว่างดำเนินการ
ในอุปกรณ์ Android และ iOS คุณสามารถปรับปรุงประสิทธิภาพได้โดยใช้การเร่งฮาร์ดแวร์ ในแพลตฟอร์มใดก็ตาม คุณจะใช้ GPU Delegate ได้ และหากต้องใช้ Core ML Delegate บน iOS หากต้องการเพิ่มการรองรับตัวเร่งฮาร์ดแวร์ใหม่ ให้กำหนดผู้รับมอบสิทธิ์ของคุณเอง
เริ่มต้นใช้งาน
คุณสามารถดูคำแนะนำต่อไปนี้ตามอุปกรณ์เป้าหมาย
Android และ iOS: สำรวจการเริ่มต้นใช้งาน Android อย่างรวดเร็วและการเริ่มต้นใช้งาน iOS อย่างรวดเร็ว
Linux แบบฝัง: สำรวจการเริ่มต้นใช้งาน Python อย่างรวดเร็วสำหรับอุปกรณ์แบบฝัง เช่น Raspberry Pi และอุปกรณ์ Corral ที่มี Edge TPU หรือวิธีการบิลด์ C++ สำหรับ ARM
ไมโครคอนโทรลเลอร์: สำรวจไลบรารี TensorFlow Lite สำหรับไมโครคอนโทรลเลอร์สำหรับไมโครคอนโทรลเลอร์และ DSP ที่มีหน่วยความจำเพียงไม่กี่กิโลไบต์
ข้อจำกัดทางเทคนิค
- โมเดล TensorFlow ทั้งหมด ไม่สามารถ แปลงเป็นโมเดล TensorFlow Lite ได้ โปรดดูที่ความเข้ากันได้ของโอเปอเรเตอร์