dòng chảy :: hoạt động :: Dequantize
#include <array_ops.h>
Dequantize tensor 'đầu vào' thành float hoặc bfloat16 Tensor .
Tóm lược
[min_range, max_range] là các phao vô hướng chỉ định phạm vi cho đầu ra. Thuộc tính 'mode' kiểm soát chính xác các phép tính nào được sử dụng để chuyển đổi các giá trị float thành các giá trị tương đương được lượng tử hóa của chúng.
Trong chế độ 'MIN_COMBINED', mỗi giá trị của tensor sẽ trải qua như sau:
if T == qint8: in[i] += (range(T) + 1)/ 2.0 out[i] = min_range + (in[i]* (max_range - min_range) / range(T))ở đây
range(T) = numeric_limits ::max() - numeric_limits ::min()
range(T) = numeric_limits ::max() - numeric_limits ::min()
range(T) = numeric_limits ::max() - numeric_limits ::min()
Ví dụ về chế độ MIN_COMBINED
Nếu đầu vào đến từ QuantizedRelu6 , thì loại đầu ra là nhóm ngũ phân 8 (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 weight8 sẽ lấy từng giá trị, ép kiểu float và nhân với 6 / 255. Lưu ý rằng nếu kiểu lượng tử là qint8, thì thao tác này sẽ cộng thêm từng giá trị 128 trước khi ép kiểu.
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(input) - lowest_quantized; result = range_min + ((input - numeric_limits ::min()) * range_scale)
Nếu chế độ được SCALED
, dequantization được thực hiện bằng cách nhân mỗi giá trị đầu vào bởi một scaling_factor. (Do đó, đầu vào của 0 luôn ánh xạ tới 0,0).
Hệ số 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::min() + (narrow_range ? 1 : 0); const int max_expected_T = std::numeric_limits ::max(); const float max_expected_T = std::numeric_limits ::max();
const float scale_factor = (std::numeric_limits::min() == 0) ? (max_range / max_expected_T) : std::max(min_range / min_expected_T, max_range / max_expected_T); Tranh luận:
- phạm vi: Một đối tượng Phạm vi
- min_range: Giá trị vô hướng tối thiểu có thể được tạo ra cho đầu vào.
- max_range: Giá trị vô hướng lớn nhất có thể được tạo ra cho đầu vào.
Các thuộc tính tùy chọn (xem Phần Attrs
):
- dtype: Loại tensor đầu ra. Hiện tại Dequantize hỗ trợ float và bfloat16. Nếu 'dtype' là 'bfloat16', nó chỉ hỗ trợ chế độ 'MIN_COMBINED'.
Lợi nhuận:
-
Output
: Bộ căng đầu ra.
Người xây dựng và Người phá hủy | |
---|---|
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range) | |
Dequantize (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input min_range, :: tensorflow::Input max_range, const Dequantize::Attrs & attrs) |
Thuộc tính công khai | |
---|---|
operation | |
output |
Chức năng công cộng | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
Các chức năng tĩnh công khai | |
---|---|
Axis (int64 x) | |
Dtype (DataType x) | |
Mode (StringPiece x) | |
NarrowRange (bool x) |
Cấu trúc | |
---|---|
tensorflow :: ops :: Dequantize :: Attrs | Bộ thiết lập thuộc tính tùy chọn cho Dequantize . |
Thuộc tính công khai
hoạt động
Operation operation
đầu ra
::tensorflow::Output output
Chức năng công cộng
Dequantize
Dequantize( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input min_range, ::tensorflow::Input max_range )
Dequantize
Dequantize( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input min_range, ::tensorflow::Input max_range, const Dequantize::Attrs & attrs )
nút
::tensorflow::Node * node() const
toán tử :: tensorflow :: Đầu vào
operator::tensorflow::Input() const
toán tử :: tensorflow :: Đầu ra
operator::tensorflow::Output() const
Các chức năng tĩnh công khai
Trục
Attrs Axis( int64 x )
Dtype
Attrs Dtype( DataType x )
Chế độ
Attrs Mode( StringPiece x )
Phạm vi hẹp
Attrs NarrowRange( bool x )