Dequantize

lớp học cuối cùng công khai

Giảm lượng tử tenxơ 'đầu vào' thành một tenxơ float hoặc bfloat16.

[min_range, max_range] là các số float vô hướng chỉ định phạm vi cho đầu ra. Thuộc tính 'mode' kiểm soát chính xác những phép tính nào được sử dụng để chuyển đổi các giá trị float thành giá trị lượng tử hóa tương đương của chúng.

Trong chế độ 'MIN_COMBIND', mỗi giá trị của tenxơ sẽ trải qua các bước sau:

if T == qint8: in[i] += (range(T) + 1)/ 2.0
 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))
 
ở đây `phạm vi (T) = số_limits ::max() - số_limits ::min()`

Ví dụ về chế độ MIN_COMBIND

Nếu đầu vào đến từ QuantizedRelu6 thì loại đầu ra là quint8 (phạm vi 0-255) nhưng phạm vi có thể có của QuantizedRelu6 là 0-6. Do đó, các giá trị min_range và max_range là 0,0 và 6,0. Dequantize trên quint8 sẽ lấy từng giá trị, chuyển thành float và nhân với 6/255. Lưu ý rằng nếu loại lượng tử hóa là qint8, thì thao tác sẽ cộng thêm từng giá trị với 128 trước khi truyền.

Nếu chế độ là 'MIN_FIRST' thì phương pháp này được sử dụng:

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)
 
Nếu chế độ là `SCALED`, quá trình khử lượng tử được thực hiện bằng cách nhân mỗi giá trị đầu vào với một hệ số chia tỷ lệ. (Do đó, đầu vào 0 luôn ánh xạ tới 0,0).

Hệ số chia tỷ lệ được xác định từ `min_range`, `max_range` và `narrow_range` theo cách tương thích với `QuantizeAndDequantize{V2|V3}` và `QuantizeV2`, sử dụng thuật toán sau:

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);
 

Các lớp lồng nhau

lớp học Dequantize.Options Các thuộc tính tùy chọn cho Dequantize

Hằng số

Sợi dây OP_NAME Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Phương pháp công cộng

Đầu ra <U>
asOutput ()
Trả về tay cầm tượng trưng của tensor.
tĩnh Dequantize.Options
trục (Trục dài)
tĩnh <U mở rộng TNumber > Giảm lượng tử hóa <U>
tạo ( Phạm vi phạm vi, Toán hạng <? mở rộng TType > đầu vào, Toán hạng < TFloat32 > minRange, Toán hạng < TFloat32 > maxRange, Class<U> dtype, Tùy chọn... tùy chọn)
Phương thức xuất xưởng để tạo một lớp bao bọc một hoạt động Dequantize mới.
Giảm lượng tử tĩnh < TFloat32 >
tạo ( Phạm vi phạm vi, Toán hạng <? mở rộng TType > đầu vào, Toán hạng < TFloat32 > minRange, Toán hạng < TFloat32 > maxRange, Tùy chọn... tùy chọn)
Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác Dequantize mới bằng cách sử dụng các loại đầu ra mặc định.
tĩnh Dequantize.Options
chế độ (Chế độ chuỗi)
tĩnh Dequantize.Options
phạm vi hẹp (Phạm vi hẹp Boolean)
Đầu ra <U>

Phương pháp kế thừa

Hằng số

Chuỗi cuối cùng tĩnh công khai OP_NAME

Tên của op này, được biết đến bởi công cụ lõi TensorFlow

Giá trị không đổi: "Dequantize"

Phương pháp công cộng

Đầu ra công khai <U> asOutput ()

Trả về tay cầm tượng trưng của tensor.

Đầu vào của các hoạt động TensorFlow là đầu ra của một hoạt động TensorFlow khác. Phương pháp này được sử dụng để thu được một thẻ điều khiển mang tính biểu tượng đại diện cho việc tính toán đầu vào.

trục tĩnh công khai Dequantize.Options (Trục dài)

public static Dequantize <U> tạo ( Phạm vi phạm vi, Toán hạng <? mở rộng đầu vào TType >, Toán hạng < TFloat32 > minRange, Toán hạng < TFloat32 > maxRange, Class<U> dtype, Tùy chọn... tùy chọn)

Phương thức xuất xưởng để tạo một lớp bao bọc một hoạt động Dequantize mới.

Thông số
phạm vi phạm vi hiện tại
phạm vi phút Giá trị vô hướng tối thiểu có thể được tạo ra cho đầu vào.
phạm vi tối đa Giá trị vô hướng tối đa có thể được tạo ra cho đầu vào.
dtype Loại tensor đầu ra. Hiện tại Dequantize hỗ trợ float và bfloat16. Nếu 'dtype' là 'bfloat16' thì nó chỉ hỗ trợ chế độ 'MIN_COMBIND'.
tùy chọn mang các giá trị thuộc tính tùy chọn
Trả lại
  • một phiên bản mới của Dequantize

public static Dequantize < TFloat32 > create ( Phạm vi phạm vi, Toán hạng <? mở rộng TType > đầu vào, Toán hạng < TFloat32 > minRange, Toán hạng < TFloat32 > maxRange, Tùy chọn... tùy chọn)

Phương thức xuất xưởng để tạo một lớp bao bọc một thao tác Dequantize mới bằng cách sử dụng các loại đầu ra mặc định.

Thông số
phạm vi phạm vi hiện tại
phạm vi phút Giá trị vô hướng tối thiểu có thể được tạo ra cho đầu vào.
phạm vi tối đa Giá trị vô hướng tối đa có thể được tạo ra cho đầu vào.
tùy chọn mang các giá trị thuộc tính tùy chọn
Trả lại
  • một phiên bản mới của Dequantize

chế độ Dequantize.Options tĩnh công khai (Chế độ chuỗi)

public static Dequantize.Options thu hẹpRange (Boolean thu hẹpRange)

Đầu ra công khai đầu ra <U> ()