Преобразуйте квантованный «входной» тензор в «выход» с меньшей точностью, используя
фактическое распределение значений для максимального использования нижней разрядности и соответствующей настройки выходных минимального и максимального диапазонов.
[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 | Название этой операции, известное основному движку TensorFlow. |
Публичные методы
static <U расширяет TType > QuantizeDownAndShrinkRange <U> | |
Выход <U> | выход () |
Вывод <TFloat32> | выходМакс () Значение с плавающей запятой, которое представляет максимальное квантованное выходное значение. |
Вывод <TFloat32> | выходМин () Значение с плавающей запятой, которое представляет минимальное квантованное выходное значение. |
Унаследованные методы
Константы
общедоступная статическая финальная строка OP_NAME
Название этой операции, известное основному движку TensorFlow.
Публичные методы
public static QuantizeDownAndShrinkRange <U> create (область действия , операнд <? расширяет TType > input, операнд < TFloat32 > inputMin, операнд < TFloat32 > inputMax, Class<U> outType)
Фабричный метод для создания класса, обертывающего новую операцию QuantizeDownAndShrinkRange.
Параметры
объем | текущий объем |
---|---|
вводмин. | Значение с плавающей запятой, которое представляет минимальное квантованное входное значение. |
входМакс | Значение с плавающей запятой, которое представляет максимальное квантованное входное значение. |
outType | Тип вывода. Должна быть меньшая разрядность, чем у Tinput. |
Возврат
- новый экземпляр QuantizeDownAndShrinkRange
публичный вывод <TFloat32> outputMax ()
Значение с плавающей запятой, которое представляет максимальное квантованное выходное значение.
публичный вывод <TFloat32> outputMin ()
Значение с плавающей запятой, которое представляет минимальное квантованное выходное значение.