tensorflow::ops::QuantizeDownAndShrinkRange
#include <math_ops.h>
Преобразует квантованный тензор 'input' в выходной тензор 'output' с меньшей точностью, используя.
Краткое описание
фактическое распределение значений для максимального использования меньшей разрядности и соответствующей корректировки минимального и максимального значений выходного диапазона.
[input_min, input_max] — скалярные значения типа float, задающие диапазон интерпретации данных 'input' как чисел с плавающей запятой. Например, если 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.0f, заданного минимальным и максимальным значениями входных данных.
На практике это наиболее полезно для обработки результатов таких операций, как QuantizedMatMul, которые могут формировать результаты с большей разрядностью, чем у входных данных, и иметь широкий потенциальный диапазон выходных значений, но фактически распределение входных значений может занимать лишь малую часть возможного диапазона. Передав такой результат этому оператору, можно преобразовать его из 32-битного формата в 8-битный с минимальной потерей точности.
Аргументы:
- scope: объект Scope
- input_min: значение типа float, которому соответствует минимальное квантованное значение входных данных.
- input_max: значение типа float, которому соответствует максимальное квантованное значение входных данных.
- out_type: тип выходных данных. Его разрядность должна быть меньше разрядности Tinput.
Возвращает:
-
Outputoutput -
Outputoutput_min: значение типа float, которому соответствует минимальное квантованное значение выходных данных. -
Outputoutput_max: значение типа float, которому соответствует максимальное квантованное значение выходных данных.
| Конструкторы и деструкторы | |
|---|---|
QuantizeDownAndShrinkRange(const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, DataType out_type) |
| Открытые атрибуты | |
|---|---|
operation | |
output | |
output_max | |
output_min | |
Открытые атрибуты
operation
Operation operation
output
::tensorflow::Output output
output_max
::tensorflow::Output output_max
output_min
::tensorflow::Output output_min
Открытые функции
QuantizeDownAndShrinkRange
QuantizeDownAndShrinkRange( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input input_min, ::tensorflow::Input input_max, DataType out_type )
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/cc/class/tensorflow/ops/quantize-down-and-shrink-range