การกำหนดปริมาณหลังการฝึกอบรมประกอบด้วยเทคนิคทั่วไปเพื่อลดเวลาแฝง การประมวลผล พลังงาน และขนาดโมเดลของ CPU และฮาร์ดแวร์ โดยที่ความแม่นยำของโมเดลลดลงเล็กน้อย เทคนิคเหล่านี้สามารถทำได้กับโมเดล Float TensorFlow ที่ผ่านการฝึกอบรมแล้ว และนำไปใช้ในระหว่างการแปลง TensorFlow Lite เทคนิคเหล่านี้เปิดใช้งานเป็นตัวเลือกใน ตัวแปลง TensorFlow Lite
หากต้องการข้ามไปยังตัวอย่างตั้งแต่ต้นจนจบ โปรดดูบทช่วยสอนต่อไปนี้:
- การหาปริมาณช่วงไดนามิกหลังการฝึกอบรม
- การหาปริมาณจำนวนเต็มหลังการฝึกอบรม
- การหาปริมาณหลังการฝึก float16
การหาปริมาณน้ำหนัก
น้ำหนักสามารถแปลงเป็นประเภทที่มีความแม่นยำลดลง เช่น ทศนิยม 16 บิตหรือจำนวนเต็ม 8 บิต โดยทั่วไปเราแนะนำให้ใช้โฟลต 16 บิตสำหรับการเร่งความเร็ว GPU และจำนวนเต็ม 8 บิตสำหรับการทำงานของ CPU
ตัวอย่างเช่น ต่อไปนี้เป็นวิธีระบุการหาปริมาณน้ำหนักจำนวนเต็ม 8 บิต:
import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant_model = converter.convert()
ในการอนุมาน ส่วนที่เข้มข้นวิกฤตที่สุดจะถูกคำนวณด้วย 8 บิตแทนที่จะเป็นจุดลอยตัว มีค่าใช้จ่ายด้านประสิทธิภาพตามเวลาอนุมาน ซึ่งสัมพันธ์กับการหาปริมาณทั้งน้ำหนักและการเปิดใช้งานด้านล่าง
สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือ การวัดปริมาณหลังการฝึกอบรม TensorFlow Lite
การหาปริมาณน้ำหนักและการกระตุ้นจำนวนเต็ม
ปรับปรุงเวลาแฝง การประมวลผล และการใช้พลังงาน และเข้าถึงตัวเร่งฮาร์ดแวร์จำนวนเต็มเท่านั้น โดยตรวจสอบให้แน่ใจว่าน้ำหนักและการเปิดใช้งานได้รับการกำหนดปริมาณแล้ว ซึ่งต้องใช้ชุดข้อมูลตัวแทนขนาดเล็ก
import tensorflow as tf
def representative_dataset_gen():
for _ in range(num_calibration_steps):
# Get sample input data as a numpy array in a method of your choosing.
yield [input]
converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
converter.representative_dataset = representative_dataset_gen
tflite_quant_model = converter.convert()
โมเดลผลลัพธ์จะยังคงรับอินพุตและเอาท์พุตแบบโฟลตเพื่อความสะดวก
สำหรับข้อมูลเพิ่มเติม โปรดดูคู่มือ การวัดปริมาณหลังการฝึกอบรม TensorFlow Lite