คำถามที่พบบ่อย

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

การแปลงโมเดล

รูปแบบใดบ้างที่รองรับการแปลงจาก TensorFlow เป็น TensorFlow Lite

รูปแบบที่รองรับแสดง อยู่ที่นี่

เหตุใดการดำเนินการบางอย่างจึงไม่ถูกนำมาใช้ใน TensorFlow Lite

เพื่อให้ TFLite มีน้ำหนักเบา จึงรองรับเฉพาะตัวดำเนินการ TF บางตัว (แสดงอยู่ใน รายการที่อนุญาต ) เท่านั้นที่ได้รับการสนับสนุนใน TFLite

เหตุใดโมเดลของฉันจึงไม่แปลง

เนื่องจากจำนวนการดำเนินการของ TensorFlow Lite น้อยกว่าของ TensorFlow บางรุ่นอาจไม่สามารถแปลงได้ ข้อผิดพลาดทั่วไปบางประการแสดงไว้ ที่นี่

สำหรับปัญหาการแปลงที่ไม่เกี่ยวข้องกับการดำเนินการที่ขาดหายไปหรือการดำเนินการควบคุมโฟลว์ ให้ค้นหา ปัญหา GitHub ของเราหรือยื่น ปัญหาใหม่

ฉันจะทดสอบได้อย่างไรว่าโมเดล TensorFlow Lite ทำงานเหมือนกับโมเดล TensorFlow ดั้งเดิม

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

ฉันจะกำหนดอินพุต/เอาท์พุตสำหรับบัฟเฟอร์โปรโตคอล GraphDef ได้อย่างไร

วิธีที่ง่ายที่สุดในการตรวจสอบกราฟจากไฟล์ .pb คือการใช้ Netron ซึ่งเป็นโปรแกรมดูโอเพ่นซอร์สสำหรับโมเดลการเรียนรู้ของเครื่อง

หาก Netron ไม่สามารถเปิดกราฟได้ คุณสามารถลองใช้เครื่องมือ summary_graph

หากเครื่องมือ summary_graph เกิดข้อผิดพลาด คุณสามารถเห็นภาพ GraphDef ด้วย TensorBoard และมองหาอินพุตและเอาต์พุตในกราฟ หากต้องการแสดงภาพไฟล์ .pb ให้ใช้สคริปต์ import_pb_to_tensorboard.py ดังตัวอย่างด้านล่าง:

python import_pb_to_tensorboard.py --model_dir <model path> --log_dir <log dir path>

ฉันจะตรวจสอบไฟล์ .tflite ได้อย่างไร

Netron เป็นวิธีที่ง่ายที่สุดในการแสดงภาพโมเดล TensorFlow Lite

หาก Netron ไม่สามารถเปิดโมเดล TensorFlow Lite ของคุณได้ คุณสามารถลองใช้สคริปต์ Visualize.py ในพื้นที่เก็บข้อมูลของเรา

หากคุณใช้ TF 2.5 หรือเวอร์ชันที่ใหม่กว่า

python -m tensorflow.lite.tools.visualize model.tflite visualized_model.html

มิฉะนั้น คุณสามารถรันสคริปต์นี้ด้วย Bazel ได้

bazel run //tensorflow/lite/tools:visualize model.tflite visualized_model.html

การเพิ่มประสิทธิภาพ

ฉันจะลดขนาดของโมเดล TensorFlow Lite ที่แปลงแล้วได้อย่างไร

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

หากการฝึกโมเดลใหม่เป็นทางเลือกหนึ่ง ให้พิจารณา การฝึกอบรมที่คำนึงถึงเชิงปริมาณ อย่างไรก็ตาม โปรดทราบว่าการฝึกอบรมที่คำนึงถึงเชิงปริมาณนั้นมีให้สำหรับชุดย่อยของสถาปัตยกรรมโครงข่ายประสาทเทียมแบบ Convolutional เท่านั้น

เพื่อความเข้าใจที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับวิธีการเพิ่มประสิทธิภาพต่างๆ โปรดดูที่ การเพิ่มประสิทธิภาพโมเดล

ฉันจะเพิ่มประสิทธิภาพ TensorFlow Lite สำหรับงาน Machine Learning ของฉันได้อย่างไร

กระบวนการระดับสูงเพื่อเพิ่มประสิทธิภาพการทำงานของ TensorFlow Lite มีลักษณะดังนี้:

  • ตรวจสอบให้แน่ใจว่าคุณมีแบบจำลองที่เหมาะสมสำหรับงาน สำหรับการจัดหมวดหมู่รูปภาพ โปรดดูที่ TensorFlow Hub
  • ปรับแต่งจำนวนเธรด ตัวดำเนินการ TensorFlow Lite จำนวนมากรองรับเคอร์เนลแบบมัลติเธรด คุณสามารถใช้ SetNumThreads() ใน C++ API เพื่อทำสิ่งนี้ อย่างไรก็ตาม การเพิ่มเธรดส่งผลให้เกิดความแปรปรวนของประสิทธิภาพโดยขึ้นอยู่กับสภาพแวดล้อม
  • ใช้ตัวเร่งฮาร์ดแวร์ TensorFlow Lite รองรับการเร่งความเร็วโมเดลสำหรับฮาร์ดแวร์เฉพาะที่ใช้ผู้ร่วมประชุม ดูคู่มือ ผู้ร่วมประชุม ของเราสำหรับข้อมูลเกี่ยวกับตัวเร่งความเร็วใดบ้างที่รองรับ และวิธีการใช้งานกับรุ่นของคุณในอุปกรณ์ของคุณ
  • (ขั้นสูง) โมเดลโปรไฟล์ เครื่องมือเปรียบเทียบ Tensorflow Lite มีโปรไฟล์ในตัวที่สามารถแสดงสถิติต่อผู้ปฏิบัติงาน หากคุณทราบวิธีที่คุณสามารถเพิ่มประสิทธิภาพการทำงานของผู้ให้บริการสำหรับแพลตฟอร์มเฉพาะของคุณ คุณสามารถใช้ ตัวดำเนินการที่กำหนดเอง ได้

สำหรับการสนทนาเชิงลึกเพิ่มเติมเกี่ยวกับวิธีเพิ่มประสิทธิภาพ โปรดดูที่ แนวทางปฏิบัติที่ดีที่สุด