แปลงเทนเซอร์ 'อินพุต' เชิงปริมาณให้เป็น 'เอาต์พุต' ที่มีความแม่นยำต่ำกว่า โดยใช้
การกระจายค่าตามจริงเพื่อเพิ่มการใช้งานความลึกบิตล่างให้สูงสุด และปรับช่วงต่ำสุดและสูงสุดเอาต์พุตตามลำดับ
[input_min, input_max] เป็นสเกลาร์โฟลตที่ระบุช่วงสำหรับการตีความโฟลตของข้อมูล 'อินพุต' ตัวอย่างเช่น หาก input_min คือ -1.0f และ input_max คือ 1.0f และเรากำลังจัดการกับข้อมูลเชิงปริมาณ quint16 ค่า 0 ในข้อมูล 16 บิตควรถูกตีความว่าเป็น -1.0f และ 65535 หมายถึง 1.0f
โอเปอเรเตอร์นี้พยายามบีบความแม่นยำให้มากที่สุดเท่าที่จะเป็นไปได้ในเอาต์พุตที่มีความลึกบิตต่ำลง โดยการคำนวณค่าต่ำสุดและสูงสุดจริงที่พบในข้อมูล ตัวอย่างเช่น บางทีอินพุต quint16 นั้นไม่มีค่าใดต่ำกว่า 16,384 และไม่มีค่าใดที่สูงกว่า 49,152 นั่นหมายความว่าจริงๆ แล้วจำเป็นต้องใช้ช่วงเพียงครึ่งเดียวเท่านั้น การตีความจำนวนทศนิยมทั้งหมดอยู่ระหว่าง -0.5f ถึง 0.5f ดังนั้น หากเราต้องการบีบอัดข้อมูลลงในเอาต์พุต quint8 เราสามารถใช้ช่วงนั้นแทนตามทฤษฎี -1.0f ถึง 1.0 f ที่แนะนำโดยอินพุต min และ max
ในทางปฏิบัติ สิ่งนี้มีประโยชน์มากที่สุดสำหรับการรับเอาต์พุตจากการดำเนินการ เช่น QuantizedMatMul ที่สามารถสร้างเอาต์พุตที่มีความลึกบิตสูงกว่าอินพุต และอาจมีช่วงเอาต์พุตที่มีศักยภาพสูง แต่ในทางปฏิบัติมีการกระจายของค่าอินพุตที่ใช้เพียงเศษส่วนเล็กน้อยของ ช่วงที่เป็นไปได้ ด้วยการป้อนเอาต์พุตนั้นเข้าไปในโอเปอเรเตอร์นี้ เราสามารถลดจาก 32 บิตเหลือ 8 ได้โดยสูญเสียความแม่นยำน้อยที่สุด
ค่าคงที่
สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow |
วิธีการสาธารณะ
คงที่ <U ขยาย TType > QuantizeDownAndShrinkRange <U> | สร้าง (ขอบเขต ขอบเขต ตัวดำเนินการ <? ขยาย TType > อินพุต ตัวดำเนินการ < TFloat32 > inputMin, ตัวดำเนินการ < TFloat32 > inputMax, Class<U> outType) วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ QuantizeDownAndShrinkRange ใหม่ |
เอาท์พุต <U> | เอาท์พุท () |
เอาท์พุต < TFloat32 > | เอาท์พุทสูงสุด () ค่าทศนิยมที่ค่าเอาต์พุตเชิงปริมาณสูงสุดเป็นตัวแทน |
เอาท์พุต < TFloat32 > | เอาท์พุทขั้นต่ำ () ค่าทศนิยมที่ค่าเอาต์พุตเชิงปริมาณขั้นต่ำเป็นตัวแทน |
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
สาธารณะคง QuantizeDownAndShrinkRange <U> สร้าง (ขอบเขต ขอบเขต , ตัวดำเนินการ <? ขยาย TType > อินพุต, ตัวดำเนินการ < TFloat32 > inputMin, ตัวดำเนินการ < TFloat32 > inputMax, Class<U> outType)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ QuantizeDownAndShrinkRange ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
อินพุตขั้นต่ำ | ค่าทศนิยมที่ค่าอินพุตเชิงปริมาณขั้นต่ำเป็นตัวแทน |
อินพุตสูงสุด | ค่าทศนิยมที่ค่าอินพุตเชิงปริมาณสูงสุดเป็นตัวแทน |
ประเภทออก | ประเภทของเอาท์พุต ควรมีความลึกบิตต่ำกว่า Tinput |
การส่งคืน
- อินสแตนซ์ใหม่ของ QuantizeDownAndShrinkRange