การหาปริมาณหลังการฝึก

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

หากต้องการข้ามไปยังตัวอย่างตั้งแต่ต้นจนจบ โปรดดูบทช่วยสอนต่อไปนี้:

การหาปริมาณน้ำหนัก

น้ำหนักสามารถแปลงเป็นประเภทที่มีความแม่นยำลดลง เช่น ทศนิยม 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