Dequantize

คลาสสุดท้ายสาธารณะ Dequantize

แยกเทนเซอร์ 'อินพุต' ออกเป็นโฟลตหรือ bfloat16 เทนเซอร์

[min_range, max_range] เป็นสเกลาร์โฟลตที่ระบุช่วงสำหรับเอาต์พุต แอตทริบิวต์ 'โหมด' ควบคุมได้อย่างแม่นยำว่าการคำนวณใดใช้ในการแปลงค่าทศนิยมให้เทียบเท่ากับปริมาณ

ในโหมด 'MIN_COMBINED' แต่ละค่าของเทนเซอร์จะมีลักษณะดังนี้:

if T == qint8: in[i] += (range(T) + 1)/ 2.0
 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
 
ที่นี่ `range(T) = numeric_limits ::max() - ตัวเลข_ขีดจำกัด ::นาที()`

ตัวอย่างโหมด MIN_COMBINED

หากอินพุตมาจาก QuantizedRelu6 ประเภทเอาต์พุตจะเป็น quint8 (ช่วง 0-255) แต่ช่วงที่เป็นไปได้ของ QuantizedRelu6 คือ 0-6 ค่า min_range และ max_range จึงเป็น 0.0 และ 6.0 การแยกปริมาณใน quint8 จะใช้แต่ละค่า แคสต์จนลอย และคูณด้วย 6/255 โปรดทราบว่าหากประเภทเชิงปริมาณคือ qint8 การดำเนินการจะเพิ่มแต่ละค่าเพิ่มเติมด้วย 128 ก่อนที่จะทำการแคสต์

หากโหมดเป็น 'MIN_FIRST' แสดงว่ามีการใช้แนวทางนี้:

num_discrete_values = 1 << (# of bits in T)
 range_adjust = num_discrete_values / (num_discrete_values - 1)
 range = (range_max - range_min) * range_adjust
 range_scale = range / num_discrete_values
 const double offset_input = static_cast<double>(input) - lowest_quantized;
 result = range_min + ((input - numeric_limits<T>::min()) * range_scale)
 
หากโหมดเป็น "SCALED" การลดปริมาณจะดำเนินการโดยการคูณค่าอินพุตแต่ละค่าด้วย scaling_factor (ดังนั้นอินพุตของ 0 จะจับคู่กับ 0.0 เสมอ)

scaling_factor จะกำหนดจาก `min_range`, `max_range` และ `narrow_range` ในลักษณะที่เข้ากันได้กับ `QuantizeAndDequantize{V2|V3}` และ `QuantizeV2` โดยใช้อัลกอริทึมต่อไปนี้:

const int min_expected_T = std::numeric_limits<T>::min() +
     (narrow_range ? 1 : 0);
   const int max_expected_T = std::numeric_limits<T>::max();
   const float max_expected_T = std::numeric_limits<float>::max();
 
   const float scale_factor =
     (std::numeric_limits<T>::min() == 0) ? (max_range / max_expected_T)
                                          : std::max(min_range / min_expected_T,
                                                     max_range / max_expected_T);
 

คลาสที่ซ้อนกัน

ระดับ ลดปริมาณตัวเลือก แอ็ตทริบิวต์ทางเลือกสำหรับ Dequantize

ค่าคงที่

สตริง OP_NAME ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow

วิธีการสาธารณะ

เอาท์พุต <U>
เป็นเอาท์พุต ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
Dequantize.Options แบบคงที่
แกน (แกนยาว)
คงที่ <U ขยาย TNumber > ลดปริมาณ <U>
สร้าง (ขอบเขต ขอบเขต ตัว ดำเนินการ <? ขยาย TType > อินพุต ตัว ดำเนินการ < TFloat32 > minRange, ตัวดำเนินการ < TFloat32 > maxRange, Class<U> dtype, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Dequantize ใหม่
Dequantize แบบคงที่ < TFloat32 >
สร้าง (ขอบเขต ขอบเขต ตัว ดำเนินการ <? ขยาย TType > อินพุต ตัวดำเนินการ < TFloat32 > minRange, ตัวดำเนินการ < TFloat32 > maxRange, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Dequantize ใหม่โดยใช้ประเภทเอาต์พุตเริ่มต้น
Dequantize.Options แบบคงที่
โหมด (โหมดสตริง)
Dequantize.Options แบบคงที่
แคบช่วง (บูลีน แคบช่วง)
เอาท์พุต <U>

วิธีการสืบทอด

ค่าคงที่

สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME

ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow

ค่าคงที่: "Dequantize"

วิธีการสาธารณะ

เอาท์พุท สาธารณะ <U> asOutput ()

ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์

อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต

แกน Dequantize.Options แบบคงที่สาธารณะ (แกนยาว)

สาธารณะ Dequantize คงที่ <U> สร้าง (ขอบเขตขอบเขต ตัว ดำเนินการ <? ขยาย TType > อินพุต ตัว ดำเนินการ < TFloat32 > minRange, ตัวดำเนินการ < TFloat32 > maxRange, Class<U> dtype, ตัวเลือก... ตัวเลือก)

วิธีการจากโรงงานเพื่อสร้างคลาสที่ห่อการดำเนินการ Dequantize ใหม่

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
นาที ค่าสเกลาร์ขั้นต่ำที่อาจเกิดขึ้นสำหรับอินพุต
ช่วงสูงสุด ค่าสเกลาร์สูงสุดที่อาจเกิดขึ้นสำหรับอินพุต
ประเภท ประเภทของเทนเซอร์เอาท์พุต ปัจจุบัน Dequantize รองรับ float และ bfloat16 หาก 'dtype' เป็น 'bfloat16' จะรองรับเฉพาะโหมด 'MIN_COMBINED' เท่านั้น
ตัวเลือก มีค่าแอตทริบิวต์ทางเลือก
การส่งคืน
  • ตัวอย่างใหม่ของ Dequantize

Dequantize สาธารณะแบบคงที่ < TFloat32 > สร้าง (ขอบเขต ขอบเขต , ตัวดำเนินการ <? ขยาย TType > อินพุต, ตัวดำเนินการ < TFloat32 > minRange, ตัวดำเนินการ < TFloat32 > maxRange, ตัวเลือก... ตัวเลือก)

วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Dequantize ใหม่โดยใช้ประเภทเอาต์พุตเริ่มต้น

พารามิเตอร์
ขอบเขต ขอบเขตปัจจุบัน
นาที ค่าสเกลาร์ขั้นต่ำที่อาจเกิดขึ้นสำหรับอินพุต
ช่วงสูงสุด ค่าสเกลาร์สูงสุดที่อาจเกิดขึ้นสำหรับอินพุต
ตัวเลือก มีค่าแอตทริบิวต์ทางเลือก
การส่งคืน
  • ตัวอย่างใหม่ของ Dequantize

โหมด Dequantize.Options แบบคงที่สาธารณะ (โหมด String)

สาธารณะ Dequantize แบบคงที่ ตัวเลือกแคบช่วง (บูลีนแคบช่วง)

เอาท์พุท สาธารณะ <U> เอาท์พุท ()