หากคุณไม่พบคำตอบสำหรับคำถามของคุณที่นี่ โปรดดูเอกสารโดยละเอียดของเราสำหรับหัวข้อนั้นหรือยื่น ปัญหา 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 ได้
- โคลนพื้นที่เก็บข้อมูล TensorFlow
- รันสคริปต์
visualize.py
ด้วย 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 มีโปรไฟล์ในตัวที่สามารถแสดงสถิติต่อผู้ปฏิบัติงาน หากคุณทราบวิธีที่คุณสามารถเพิ่มประสิทธิภาพการทำงานของผู้ให้บริการสำหรับแพลตฟอร์มเฉพาะของคุณ คุณสามารถใช้ ตัวดำเนินการที่กำหนดเอง ได้
สำหรับการสนทนาเชิงลึกเพิ่มเติมเกี่ยวกับวิธีเพิ่มประสิทธิภาพ โปรดดูที่ แนวทางปฏิบัติที่ดีที่สุด