โมเดลแมชชีนเลิร์นนิง (ML) ที่คุณใช้กับ TensorFlow Lite เดิมสร้างและฝึกฝนโดยใช้ไลบรารีและเครื่องมือหลักของ TensorFlow เมื่อคุณสร้างโมเดลด้วยแกน TensorFlow แล้ว คุณสามารถแปลงเป็นรูปแบบโมเดล ML ที่เล็กลงและมีประสิทธิภาพมากขึ้นที่เรียกว่าโมเดล TensorFlow Lite ส่วนนี้ให้คำแนะนำในการแปลงโมเดล TensorFlow เป็นรูปแบบโมเดล TensorFlow Lite
เวิร์กโฟลว์การแปลง
การแปลงโมเดล TensorFlow เป็นรูปแบบ TensorFlow Lite อาจใช้เวลา 2-3 เส้นทาง ขึ้นอยู่กับเนื้อหาของโมเดล ML ของคุณ ในขั้นตอนแรกของกระบวนการนั้น คุณควรประเมินแบบจำลองของคุณเพื่อดูว่าสามารถแปลงโดยตรงได้หรือไม่ การประเมินนี้กำหนดว่าเนื้อหาของโมเดลได้รับการสนับสนุนโดยสภาพแวดล้อมรันไทม์มาตรฐานของ TensorFlow Lite โดยอิงตามการดำเนินการของ TensorFlow ที่ใช้หรือไม่ หากโมเดลของคุณใช้การดำเนินการนอกชุดที่รองรับ คุณจะมีตัวเลือกในการปรับโครงสร้างโมเดลของคุณใหม่หรือใช้เทคนิคการแปลงขั้นสูง
แผนภาพด้านล่างแสดงขั้นตอนระดับสูงในการแปลงแบบจำลอง
รูปที่ 1 ขั้นตอนการแปลง TensorFlow Lite
ส่วนต่อไปนี้จะสรุปกระบวนการประเมินและแปลงโมเดลเพื่อใช้กับ TensorFlow Lite
รูปแบบการป้อนข้อมูลรูปแบบ
คุณสามารถใช้ตัวแปลงกับรูปแบบโมเดลอินพุตต่อไปนี้:
- SavedModel ( แนะนำ ): โมเดล TensorFlow บันทึกเป็นชุดของไฟล์บนดิสก์
- โมเดล Keras : โมเดลที่สร้างขึ้นโดยใช้ Keras API ระดับสูง
- รูปแบบ Keras H5 : ทางเลือกน้ำหนักเบาสำหรับรูปแบบ SavedModel ที่ Keras API รองรับ
- โมเดลที่สร้างจากฟังก์ชันที่เป็นรูปธรรม : โมเดลที่สร้างขึ้นโดยใช้ TensorFlow API ระดับต่ำ
คุณสามารถบันทึกทั้ง Keras และโมเดลฟังก์ชันคอนกรีตเป็น SavedModel และแปลงโดยใช้เส้นทางที่แนะนำ
หากคุณมีโมเดล Jax คุณสามารถใช้ TFLiteConverter.experimental_from_jax
API เพื่อแปลงเป็นรูปแบบ TensorFlow Lite โปรดทราบว่า API นี้อาจมีการเปลี่ยนแปลงขณะอยู่ในโหมดทดลอง
การประเมินการแปลง
การประเมินโมเดลของคุณเป็นขั้นตอนสำคัญก่อนที่จะพยายามแปลงโมเดล เมื่อประเมิน คุณต้องการตรวจสอบว่าเนื้อหาของโมเดลของคุณเข้ากันได้กับรูปแบบ TensorFlow Lite หรือไม่ นอกจากนี้ คุณควรพิจารณาด้วยว่าโมเดลของคุณเหมาะสมสำหรับการใช้งานบนมือถือและอุปกรณ์ Edge หรือไม่ ในแง่ของขนาดข้อมูลที่โมเดลใช้ ข้อกำหนดในการประมวลผลฮาร์ดแวร์ และขนาดโดยรวมและความซับซ้อนของโมเดล
สำหรับหลายรุ่น ตัวแปลงควรใช้งานได้ตั้งแต่แกะกล่อง อย่างไรก็ตาม ไลบรารีตัวดำเนินการในตัว TensorFlow Lite รองรับชุดย่อยของตัวดำเนินการหลัก TensorFlow ซึ่งหมายความว่าบางรุ่นอาจต้องมีขั้นตอนเพิ่มเติมก่อนที่จะแปลงเป็น TensorFlow Lite นอกจากนี้ การดำเนินการบางอย่างที่ได้รับการสนับสนุนโดย TensorFlow Lite ยังมีข้อกำหนดการใช้งานที่จำกัดด้วยเหตุผลด้านประสิทธิภาพ ดูคู่มือ ความเข้ากันได้ของผู้ปฏิบัติงาน เพื่อพิจารณาว่าโมเดลของคุณจำเป็นต้องปรับโครงสร้างใหม่สำหรับการแปลงหรือไม่
การแปลงโมเดล
ตัวแปลง TensorFlow Lite ใช้โมเดล TensorFlow และสร้างโมเดล TensorFlow Lite (รูปแบบ FlatBuffer ที่ได้รับการปรับให้เหมาะสมซึ่งระบุโดยนามสกุลไฟล์ .tflite
) คุณสามารถโหลด SavedModel หรือแปลงโมเดลที่คุณสร้างเป็นโค้ดได้โดยตรง
ตัวแปลงใช้แฟล็กหลัก 3 แฟล็ก (หรือตัวเลือก) ที่ปรับแต่งการแปลงสำหรับโมเดลของคุณ:
- แฟล็กความเข้ากันได้ ช่วยให้คุณระบุได้ว่าการแปลงควรอนุญาตตัวดำเนินการแบบกำหนดเองหรือไม่
- ธงการเพิ่มประสิทธิภาพ ช่วยให้คุณระบุประเภทของการเพิ่มประสิทธิภาพที่จะใช้ระหว่างการแปลงได้ เทคนิคการปรับให้เหมาะสมที่ใช้กันมากที่สุดคือ การวัดปริมาณหลังการฝึกอบรม
- ธงข้อมูลเมตา ช่วยให้คุณสามารถเพิ่มข้อมูลเมตาให้กับโมเดลที่แปลงแล้ว ซึ่งทำให้สร้างโค้ด Wrapper เฉพาะแพลตฟอร์มได้ง่ายขึ้นเมื่อปรับใช้โมเดลบนอุปกรณ์
คุณสามารถแปลงโมเดลของคุณได้โดยใช้ Python API หรือเครื่องมือ บรรทัดคำสั่ง ดูคู่มือ โมเดลการแปลง TF เพื่อดูคำแนะนำทีละขั้นตอนเกี่ยวกับการเรียกใช้ตัวแปลงบนโมเดลของคุณ
โดยทั่วไป คุณจะแปลงโมเดลของคุณสำหรับ สภาพแวดล้อมรันไทม์ TensorFlow Lite มาตรฐาน หรือ สภาพแวดล้อมรันไทม์ของบริการ Google Play สำหรับ TensorFlow Lite (เบต้า) กรณีการใช้งานขั้นสูงบางกรณีจำเป็นต้องมีการปรับแต่งสภาพแวดล้อมรันไทม์ของโมเดล ซึ่งต้องมีขั้นตอนเพิ่มเติมในกระบวนการแปลง ดูส่วน สภาพแวดล้อมรันไทม์ขั้นสูง ของภาพรวม Android สำหรับคำแนะนำเพิ่มเติม
การแปลงขั้นสูง
หากคุณพบ ข้อผิดพลาด ขณะเรียกใช้ตัวแปลงในโมเดลของคุณ เป็นไปได้มากว่าคุณมีปัญหาความเข้ากันได้ของตัวดำเนินการ TensorFlow Lite รองรับการทำงานของ TensorFlow บางอย่างเท่านั้น คุณสามารถแก้ไขปัญหาเหล่านี้ได้โดยการปรับโครงสร้างโมเดลของคุณใหม่ หรือใช้ตัวเลือกการแปลงขั้นสูงที่ช่วยให้คุณสร้างโมเดลรูปแบบ TensorFlow Lite ที่แก้ไขแล้วและสภาพแวดล้อมรันไทม์ที่กำหนดเองสำหรับโมเดลนั้น
- ดู ภาพรวมความเข้ากันได้ของโมเดล สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการพิจารณาความเข้ากันได้ของโมเดล TensorFlow และ TensorFlow Lite
- หัวข้อภายใต้ภาพรวมความเข้ากันได้ของโมเดลครอบคลุมเทคนิคขั้นสูงสำหรับการปรับโครงสร้างโมเดลของคุณใหม่ เช่น คู่มือ การเลือกตัวดำเนินการ
- สำหรับรายการการดำเนินการและข้อจำกัดทั้งหมด โปรดดู ที่หน้า TensorFlow Lite Ops
ขั้นตอนถัดไป
- ดูคู่มือ การแปลงโมเดล TF เพื่อเริ่มต้นการแปลงโมเดลของคุณอย่างรวดเร็ว
- ดู ภาพรวมการเพิ่มประสิทธิภาพ สำหรับคำแนะนำเกี่ยวกับวิธีการเพิ่มประสิทธิภาพโมเดลที่แปลงแล้วโดยใช้เทคนิคต่างๆ เช่น การหาปริมาณหลังการฝึก
- ดู ภาพรวมการเพิ่มข้อมูลเมตา เพื่อเรียนรู้วิธีเพิ่มข้อมูลเมตาให้กับโมเดลของคุณ ข้อมูลเมตาให้คำอธิบายการใช้งานอื่น ๆ เกี่ยวกับโมเดลของคุณตลอดจนข้อมูลที่ตัวสร้างโค้ดสามารถใช้ประโยชน์ได้