ภาพรวมการแปลงรูปแบบ

โมเดลแมชชีนเลิร์นนิง (ML) ที่คุณใช้กับ TensorFlow Lite สร้างขึ้นและฝึกไว้แล้วตั้งแต่แรกโดยใช้ไลบรารีและเครื่องมือหลักของ TensorFlow เมื่อสร้างโมเดลด้วย TensorFlow Core แล้ว คุณจะแปลงเป็นรูปแบบ ML ที่เล็กลงแต่ทำงานได้อย่างมีประสิทธิภาพมากขึ้นที่เรียกว่าโมเดล TensorFlow Lite ส่วนนี้จะให้คำแนะนำในการแปลงโมเดล TensorFlow เป็นรูปแบบโมเดล TensorFlow Lite

เวิร์กโฟลว์ Conversion

การแปลงโมเดล TensorFlow เป็นรูปแบบ TensorFlow Lite อาจใช้เวลา 2-3 เส้นทางโดยขึ้นอยู่กับเนื้อหาของโมเดล ML ในขั้นตอนแรกของกระบวนการ คุณควรประเมินโมเดลเพื่อดูว่าสามารถแปลงได้โดยตรงหรือไม่ การประเมินนี้จะระบุว่าสภาพแวดล้อมรันไทม์ TensorFlow Lite มาตรฐานรองรับเนื้อหาของโมเดลหรือไม่ โดยอิงตามการดำเนินการของ TensorFlow ที่ใช้ หากโมเดลใช้การดำเนินการนอกชุดที่รองรับ คุณจะมีตัวเลือกในการเปลี่ยนโครงสร้างโมเดลหรือใช้เทคนิค Conversion ขั้นสูง

แผนภาพด้านล่างแสดงขั้นตอนระดับสูงในการแปลงโมเดล

เวิร์กโฟลว์ Conversion ของ TFLite

รูปที่ 1 เวิร์กโฟลว์การแปลง TensorFlow Lite

ส่วนต่อไปนี้จะอธิบายถึงกระบวนการประเมินและแปลงโมเดลเพื่อใช้กับ TensorFlow Lite

รูปแบบโมเดลอินพุต

คุณสามารถใช้ตัวแปลงกับรูปแบบโมเดลอินพุตต่อไปนี้

คุณสามารถบันทึกทั้งโมเดล 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 สำหรับรูปแบบของคุณ ดังนี้

  1. แฟล็กความเข้ากันได้ช่วยให้คุณระบุว่า Conversion ควรอนุญาตโอเปอเรเตอร์ที่กำหนดเองหรือไม่
  2. แฟล็กการเพิ่มประสิทธิภาพช่วยให้คุณระบุประเภทการเพิ่มประสิทธิภาพที่จะใช้ในระหว่าง Conversion ได้ เทคนิคการเพิ่มประสิทธิภาพที่นิยมใช้กันมากที่สุดคือการวัดควอนิตี้หลังการฝึก
  3. แฟล็กข้อมูลเมตาช่วยให้คุณเพิ่มข้อมูลเมตาลงในโมเดลที่แปลงแล้ว ซึ่งจะช่วยให้สร้างโค้ด Wrapper ที่เจาะจงของแพลตฟอร์มได้ง่ายขึ้นเมื่อทำให้โมเดลใช้งานได้ในอุปกรณ์

คุณแปลงโมเดลได้โดยใช้ Python API หรือเครื่องมือบรรทัดคำสั่ง ดูคำแนะนำแปลงโมเดล TF แบบทีละขั้นตอนในการเรียกใช้ตัวแปลงในโมเดล

โดยปกติแล้วคุณจะต้องแปลงโมเดลสำหรับสภาพแวดล้อมรันไทม์ TensorFlow Lite มาตรฐานหรือสภาพแวดล้อมรันไทม์ของบริการ Google Play สำหรับ TensorFlow Lite (เบต้า) Use Case ขั้นสูงบางกรณีจำเป็นต้องมีการปรับแต่งสภาพแวดล้อมรันไทม์ของโมเดล ซึ่งต้องมีขั้นตอนเพิ่มเติมในกระบวนการแปลง โปรดดูคำแนะนำเพิ่มเติมในส่วนสภาพแวดล้อมรันไทม์ขั้นสูงในภาพรวมของ Android

การแปลงขั้นสูง

ถ้าคุณพบข้อผิดพลาดขณะเรียกใช้ตัวแปลงในโมเดล อาจเป็นไปได้ว่าคุณมีปัญหาความเข้ากันได้ของโอเปอเรเตอร์ TensorFlow Lite อาจไม่รองรับการดำเนินการ TensorFlow บางรายการ คุณหลีกเลี่ยงปัญหาเหล่านี้ได้โดยการเปลี่ยนโครงสร้างโมเดล หรือใช้ตัวเลือก Conversion ขั้นสูงที่ช่วยให้สร้างโมเดลรูปแบบ TensorFlow Lite ที่ได้รับการแก้ไขและสภาพแวดล้อมรันไทม์ที่กำหนดเองสำหรับโมเดลดังกล่าว

ขั้นตอนถัดไป