หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

Quantization ฝึกอบรมตระหนักถึง

การเก็บรักษาโดยการเพิ่มประสิทธิภาพ TensorFlow รุ่น

ควอนโพสต์การฝึกอบรมและการฝึกอบรมตระหนักถึงควอน: มีสองรูปแบบของควอนมี เริ่มต้นด้วย ควอนโพสต์การฝึกอบรม ตั้งแต่มันง่ายต่อการใช้งานแม้ว่า quantization ฝึกอบรมตระหนักถึงมักจะดีกว่าสำหรับความถูกต้องของรูปแบบ

หน้านี้จะให้ภาพรวมเกี่ยวกับการฝึกอบรมตระหนักถึงควอนช่วยคุณตรวจสอบว่ามันเหมาะกับกรณีการใช้งานของคุณ

ภาพรวม

Quantization ฝึกอบรมตระหนักถึง emulates quantization อนุมานเวลา, การสร้างรูปแบบที่เครื่องมือปลายน้ำจะใช้ในการผลิตโมเดล quantized จริง รุ่นไทใช้ที่ต่ำกว่าความแม่นยำ (เช่น 8 บิตแทนการลอย 32 บิต) ที่นำไปสู่ผลประโยชน์ระหว่างการปรับใช้

ปรับใช้กับควอน

ควอนนำการปรับปรุงที่ผ่านการบีบอัดแบบจำลองและการลดความล่าช้า ด้วยการเริ่มต้น API, หดตัวขนาดรูปแบบโดย 4x และเรามักจะเห็นระหว่าง 1.5 - 4x ปรับปรุงในความล่าช้าของ CPU ในแบ็กเอนด์ที่ผ่านการทดสอบ ในที่สุดการปรับปรุงแฝงสามารถมองเห็นบนตัวเร่งการเรียนรู้ของเครื่องที่รองรับเช่น EdgeTPU และ NNAPI

เทคนิคที่ใช้ในการผลิตในการพูดและการมองเห็นข้อความและแปลกรณีการใช้งาน รหัสปัจจุบันสนับสนุน ส่วนหนึ่งของรูปแบบเหล่านี้

การทดสอบกับควอนและฮาร์ดแวร์ที่เกี่ยวข้อง

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

เฉพาะ API เพื่อการกำหนดค่านี้มีการทดลองและไม่ใช่เรื่องที่จะเข้ากันได้ย้อนหลัง

ความเข้ากันได้ของ API

ผู้ใช้สามารถใช้ quantization กับ API ต่อไปนี้:

  • อาคารแบบ: tf.keras มีเพียงลำดับและรูปแบบการทำงาน
  • รุ่น TensorFlow: 2.x TF สำหรับ TF-คืน
    • tf.compat.v1 กับแพคเกจ TF 2.X ไม่สนับสนุน
  • โหมดการดำเนินการ TensorFlow: การดำเนินการกระตือรือร้น

มันอยู่ในแผนงานของเราจะเพิ่มการสนับสนุนในพื้นที่ดังต่อไปนี้:

  • อาคารแบบ: ชี้แจงว่ารุ่น subclassed ได้ จำกัด ให้การสนับสนุน
  • การฝึกอบรมที่กระจายได้: tf.distribute

สนับสนุนเมทริกซ์ทั่วไป

สนับสนุนการให้บริการในพื้นที่ดังต่อไปนี้:

  • รุ่นคุ้มครอง: โมเดลโดยใช้ ชั้นที่อนุญาตพิเศษ , BatchNormalization เมื่อมันดังนี้ Conv2D และ DepthwiseConv2D ชั้นและในกรณีที่ จำกัด Concat
  • การเร่งความเร็วฮาร์ดแวร์: ค่าเริ่มต้น API ของเราเข้ากันได้กับการเร่งความเร็วใน EdgeTPU, NNAPI และแบ็กเอนด์ TFLite, หมู่คนอื่น ๆ ดูข้อแม้ในแผนงาน
  • ปรับใช้กับควอน: เพียง quantization ต่อแกนสำหรับชั้นสับสนไม่ต่อเมตริกซ์ควอนได้รับการสนับสนุนในขณะนี้

มันอยู่ในแผนงานของเราจะเพิ่มการสนับสนุนในพื้นที่ดังต่อไปนี้:

  • ความคุ้มครองแบบ: ขยายเพื่อรวม RNN / LSTMs และการสนับสนุน Concat ทั่วไป
  • การเร่งความเร็วฮาร์ดแวร์: ให้แน่ใจว่าการแปลง TFLite สามารถผลิตรุ่นเต็มจำนวนเต็ม ดู ปัญหานี้ สำหรับรายละเอียด
  • ทดสอบกับกรณีการใช้งานควอน:
    • ทดสอบกับขั้นตอนวิธีการ quantization ที่ชั้นช่วง Keras หรือต้องมีขั้นตอนการฝึกอบรม
    • รักษาเสถียรภาพของ APIs

ผล

การจัดหมวดหมู่ภาพด้วยเครื่องมือ

แบบ Non-quantized Top-1 ความถูกต้อง 8 บิต quantized ความถูกต้อง
MobilenetV1 224 71.03% 71.06%
RESNET v1 50 76.3% 76.1%
MobilenetV2 224 70.77% 70.01%

รุ่นที่ได้รับการทดสอบเกี่ยวกับ Imagenet และประเมินผลทั้งในและ TensorFlow TFLite

การจัดหมวดหมู่ภาพเทคนิค

แบบ Non-quantized Top-1 ความถูกต้อง 8-bit quantized ความถูกต้อง
Nasnet-Mobile 74% 73%
RESNET-v2 50 75.6% 75%

รุ่นที่ได้รับการทดสอบเกี่ยวกับ Imagenet และประเมินผลทั้งในและ TensorFlow TFLite

ตัวอย่าง

นอกจากนี้ยังมี ตัวอย่าง quantization ฝึกอบรมตระหนักถึง ดูตัวอย่างต่อไปนี้:

  • รุ่นซีเอ็นเอ็นในงานที่เขียนด้วยลายมือบาทจำแนก MNIST กับควอน: รหัส

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