โมเดลแมชชีนเลิร์นนิง (ML) ที่คุณใช้กับ TensorFlow Lite สร้างขึ้นและฝึกไว้แล้วตั้งแต่แรกโดยใช้ไลบรารีและเครื่องมือหลักของ TensorFlow เมื่อสร้างโมเดลด้วย TensorFlow Core แล้ว คุณจะแปลงเป็นรูปแบบ ML ที่เล็กลงแต่ทำงานได้อย่างมีประสิทธิภาพมากขึ้นที่เรียกว่าโมเดล TensorFlow Lite ส่วนนี้จะให้คำแนะนำในการแปลงโมเดล TensorFlow เป็นรูปแบบโมเดล TensorFlow Lite
เวิร์กโฟลว์ Conversion
การแปลงโมเดล TensorFlow เป็นรูปแบบ TensorFlow Lite อาจใช้เวลา 2-3 เส้นทางโดยขึ้นอยู่กับเนื้อหาของโมเดล ML ในขั้นตอนแรกของกระบวนการ คุณควรประเมินโมเดลเพื่อดูว่าสามารถแปลงได้โดยตรงหรือไม่ การประเมินนี้จะระบุว่าสภาพแวดล้อมรันไทม์ TensorFlow Lite มาตรฐานรองรับเนื้อหาของโมเดลหรือไม่ โดยอิงตามการดำเนินการของ TensorFlow ที่ใช้ หากโมเดลใช้การดำเนินการนอกชุดที่รองรับ คุณจะมีตัวเลือกในการเปลี่ยนโครงสร้างโมเดลหรือใช้เทคนิค Conversion ขั้นสูง
แผนภาพด้านล่างแสดงขั้นตอนระดับสูงในการแปลงโมเดล
รูปที่ 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 นี้อาจมีการเปลี่ยนแปลง
ขณะอยู่ในโหมดทดลอง
การประเมิน Conversion
การประเมินโมเดลของคุณเป็นขั้นตอนสำคัญก่อนที่จะลองแปลงโมเดล เมื่อประเมิน คุณต้องตรวจสอบว่าเนื้อหาของโมเดลเข้ากันได้กับรูปแบบ TensorFlow Lite หรือไม่ นอกจากนี้ คุณควรพิจารณาว่าโมเดลของคุณเหมาะสมสำหรับการใช้ในอุปกรณ์เคลื่อนที่และอุปกรณ์ Edge ในแง่ของขนาดของข้อมูลที่โมเดลใช้ ข้อกำหนดการประมวลผลด้วยฮาร์ดแวร์ ตลอดจนขนาดและความซับซ้อนโดยรวมของโมเดล
สำหรับหลายๆ รุ่น ตัวแปลงรหัสควรทำงานได้ทันที อย่างไรก็ตาม ไลบรารีของโอเปอเรเตอร์ในตัวของ TensorFlow Lite รองรับโอเปอเรเตอร์หลักของ TensorFlow Lite บางโมเดลจึงอาจต้องมีขั้นตอนเพิ่มเติมก่อนแปลงเป็น TensorFlow Lite นอกจากนี้ การดำเนินการบางอย่างที่ TensorFlow Lite รองรับยังมีข้อกำหนดการใช้งานที่จำกัดเพื่อเหตุผลด้านประสิทธิภาพ ดูคู่มือความเข้ากันได้ของโอเปอเรเตอร์เพื่อให้ทราบว่าต้องเปลี่ยนโครงสร้างภายในรูปแบบสําหรับ Conversion หรือไม่
การแปลงโมเดล
ตัวแปลง TensorFlow Lite ใช้โมเดล TensorFlow และสร้างโมเดล TensorFlow Lite (รูปแบบ FlatBuffer ที่เพิ่มประสิทธิภาพตามนามสกุลไฟล์
.tflite
) คุณสามารถโหลด SavedModel หรือแปลงโมเดลที่คุณสร้างในโค้ดได้โดยตรง
ตัวแปลงจะใช้แฟล็กหลัก (หรือตัวเลือก) 3 รายการที่ปรับแต่ง Conversion สำหรับรูปแบบของคุณ ดังนี้
- แฟล็กความเข้ากันได้ช่วยให้คุณระบุว่า Conversion ควรอนุญาตโอเปอเรเตอร์ที่กำหนดเองหรือไม่
- แฟล็กการเพิ่มประสิทธิภาพช่วยให้คุณระบุประเภทการเพิ่มประสิทธิภาพที่จะใช้ในระหว่าง Conversion ได้ เทคนิคการเพิ่มประสิทธิภาพที่นิยมใช้กันมากที่สุดคือการวัดควอนิตี้หลังการฝึก
- แฟล็กข้อมูลเมตาช่วยให้คุณเพิ่มข้อมูลเมตาลงในโมเดลที่แปลงแล้ว ซึ่งจะช่วยให้สร้างโค้ด Wrapper ที่เจาะจงของแพลตฟอร์มได้ง่ายขึ้นเมื่อทำให้โมเดลใช้งานได้ในอุปกรณ์
คุณแปลงโมเดลได้โดยใช้ Python API หรือเครื่องมือบรรทัดคำสั่ง ดูคำแนะนำแปลงโมเดล TF แบบทีละขั้นตอนในการเรียกใช้ตัวแปลงในโมเดล
โดยปกติแล้วคุณจะต้องแปลงโมเดลสำหรับสภาพแวดล้อมรันไทม์ TensorFlow Lite มาตรฐานหรือสภาพแวดล้อมรันไทม์ของบริการ Google Play สำหรับ TensorFlow Lite (เบต้า) Use Case ขั้นสูงบางกรณีจำเป็นต้องมีการปรับแต่งสภาพแวดล้อมรันไทม์ของโมเดล ซึ่งต้องมีขั้นตอนเพิ่มเติมในกระบวนการแปลง โปรดดูคำแนะนำเพิ่มเติมในส่วนสภาพแวดล้อมรันไทม์ขั้นสูงในภาพรวมของ Android
การแปลงขั้นสูง
ถ้าคุณพบข้อผิดพลาดขณะเรียกใช้ตัวแปลงในโมเดล อาจเป็นไปได้ว่าคุณมีปัญหาความเข้ากันได้ของโอเปอเรเตอร์ TensorFlow Lite อาจไม่รองรับการดำเนินการ TensorFlow บางรายการ คุณหลีกเลี่ยงปัญหาเหล่านี้ได้โดยการเปลี่ยนโครงสร้างโมเดล หรือใช้ตัวเลือก Conversion ขั้นสูงที่ช่วยให้สร้างโมเดลรูปแบบ TensorFlow Lite ที่ได้รับการแก้ไขและสภาพแวดล้อมรันไทม์ที่กำหนดเองสำหรับโมเดลดังกล่าว
- ดูภาพรวมความเข้ากันได้ของโมเดลสำหรับข้อมูลเพิ่มเติมเกี่ยวกับการพิจารณาความเข้ากันได้ของโมเดล TensorFlow และ TensorFlow Lite
- หัวข้อภายใต้ภาพรวมความเข้ากันได้ของโมเดลครอบคลุมเทคนิคขั้นสูงในการปรับโครงสร้างโมเดล เช่น คู่มือเลือกโอเปอเรเตอร์
- ดูรายการการดำเนินการและข้อจำกัดทั้งหมดได้ที่หน้าการดำเนินการของ TensorFlow Lite
ขั้นตอนถัดไป
- ดูคู่มือแปลงรูปแบบ TF เพื่อเริ่มต้นการแปลงโมเดลอย่างรวดเร็ว
- ดูภาพรวมการเพิ่มประสิทธิภาพเพื่อดูคำแนะนำเกี่ยวกับวิธีเพิ่มประสิทธิภาพโมเดล Conversion โดยใช้เทคนิคต่างๆ เช่น การทําให้เป็นควอนิตหลังการฝึก
- ดูภาพรวมการเพิ่มข้อมูลเมตาเพื่อดูวิธีเพิ่มข้อมูลเมตาลงในโมเดล ข้อมูลเมตาจะให้รายละเอียดเกี่ยวกับโมเดลของคุณในลักษณะอื่นๆ รวมถึงข้อมูลที่โปรแกรมสร้างโค้ดใช้ประโยชน์ได้