тензорный поток:: опс:: КвантизацияDownAndShrinkRange

#include <math_ops.h>

Преобразуйте квантованный «входной» тензор в «выходной» тензор с меньшей точностью, используя метод .

Краткое содержание

фактическое распределение значений для максимального использования нижней разрядности и соответствующей настройки выходных минимального и максимального диапазонов.

[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 с минимальной потерей точности.

Аргументы:

  • область: объект области .
  • input_min: значение с плавающей запятой, которое представляет минимальное квантованное входное значение.
  • input_max: значение с плавающей запятой, которое представляет максимальное квантованное входное значение.
  • out_type: тип вывода. Должна быть меньшая разрядность, чем у Tinput.

Возврат:

  • Output выход
  • Output выход_мин: значение с плавающей запятой, которое представляет минимальное квантованное выходное значение.
  • Output выход_макс: значение с плавающей запятой, которое представляет максимальное квантованное выходное значение.

Конструкторы и деструкторы

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

выход

::tensorflow::Output output

выход_макс

::tensorflow::Output output_max

выходной_мин

::tensorflow::Output output_min

Общественные функции

КвантизацияDownAndShrinkRange

 QuantizeDownAndShrinkRange(
  const ::tensorflow::Scope & scope,
  ::tensorflow::Input input,
  ::tensorflow::Input input_min,
  ::tensorflow::Input input_max,
  DataType out_type
)