QuantizeDownAndShrinkRange

clase final pública QuantizeDownAndShrinkRange

Convierta el tensor de 'entrada' cuantificado en una 'salida' de menor precisión, utilizando el

distribución real de los valores para maximizar el uso de la profundidad de bits más baja y ajustar los rangos mínimo y máximo de salida en consecuencia.

[input_min, input_max] son ​​flotantes escalares que especifican el rango para la interpretación flotante de los datos de 'entrada'. Por ejemplo, si input_min es -1,0f y input_max es 1,0f, y estamos tratando con datos cuantificados de quint16, entonces un valor 0 en los datos de 16 bits debe interpretarse como -1,0f, y 65535 significa 1,0f.

Este operador intenta exprimir la mayor precisión posible en una salida con una profundidad de bits más baja calculando los valores mínimo y máximo reales que se encuentran en los datos. Por ejemplo, tal vez esa entrada de quint16 no tenga valores inferiores a 16,384 ni ninguno superior a 49,152. Eso significa que en realidad solo se necesita la mitad del rango, todas las interpretaciones flotantes están entre -0,5f y 0,5f, por lo que si queremos comprimir los datos en una salida de Quint8, podemos usar ese rango en lugar del teórico -1,0f a 1,0. f que es sugerido por la entrada min y max.

En la práctica, esto es más útil para obtener resultados de operaciones como QuantizedMatMul que pueden producir resultados con mayor profundidad de bits que sus entradas y pueden tener grandes rangos de salida potenciales, pero en la práctica tienen una distribución de valores de entrada que solo utiliza una pequeña fracción de los valores de entrada. rango posible. Al introducir esa salida en este operador, podemos reducirla de 32 bits a 8 con una pérdida mínima de precisión.

Constantes

Cadena OP_NOMBRE El nombre de esta operación, como lo conoce el motor central de TensorFlow.

Métodos públicos

estático <U extiende TType > QuantizeDownAndShrinkRange <U>
crear (alcance alcance , Operando <? extiende TType > entrada, Operando < TFloat32 > inputMin, Operando < TFloat32 > inputMax, Class<U> outType)
Método de fábrica para crear una clase que envuelve una nueva operación QuantizeDownAndShrinkRange.
Salida <U>
Salida <TFloat32>
salidaMax ()
El valor flotante que representa el valor de salida cuantificado máximo.
Salida <TFloat32>
salidaMin ()
El valor flotante que representa el valor de salida cuantificado mínimo.

Métodos heredados

Constantes

Cadena final estática pública OP_NAME

El nombre de esta operación, como lo conoce el motor central de TensorFlow.

Valor constante: "QuantizeDownAndShrinkRange"

Métodos públicos

public static QuantizeDownAndShrinkRange <U> crear (alcance alcance , operando <? extiende TType > entrada, operando < TFloat32 > inputMin, operando < TFloat32 > inputMax, clase <U> outType)

Método de fábrica para crear una clase que envuelve una nueva operación QuantizeDownAndShrinkRange.

Parámetros
alcance alcance actual
entrada mínima El valor flotante que representa el valor de entrada cuantificado mínimo.
entradaMax El valor flotante que representa el valor de entrada cuantificado máximo.
tipo de salida El tipo de salida. Debería tener una profundidad de bits menor que Tinput.
Devoluciones
  • una nueva instancia de QuantizeDownAndShrinkRange

Salida pública <U> salida ()

Salida pública <TFloat32> salidaMax ()

El valor flotante que representa el valor de salida cuantificado máximo.

Salida pública <TFloat32> salidaMin ()

El valor flotante que representa el valor de salida cuantificado mínimo.