ภาพรวมการแปลงโมเดล

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

เวิร์กโฟลว์การแปลง

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

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

ขั้นตอนการแปลง TFLite

รูปที่ 1 ขั้นตอนการแปลง TensorFlow Lite

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

รูปแบบการป้อนข้อมูลรูปแบบ

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

คุณสามารถบันทึกทั้ง 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 แฟล็ก (หรือตัวเลือก) ที่ปรับแต่งการแปลงสำหรับโมเดลของคุณ:

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

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

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

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

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

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